Установить флаг прерывания (sti) сбой ядра linux

Это действительное регулярное выражение для проверки электронной почты. Он полностью совместим с RFC822 и принимает имена IP-адресов и серверов (для целей интрасети).

public static boolean isEmailValid(String email) {
    final Pattern EMAIL_REGEX = Pattern.compile("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", Pattern.CASE_INSENSITIVE);
    return EMAIL_REGEX.matcher(email).matches();
}

Ниже приведены некоторые примеры вывода, когда вы вызываете isEmailValid(emailVariable):

john@somewhere.com // valid
john.foo@somewhere.com // valid
john.foo+label@somewhere.com // valid (with +label - Gmail accepts it!)
john@192.168.1.10 // valid (with IP addresses)
john+label@192.168.1.10 // valid (with +label and IP address)
john.foo@someserver // valid (with no first domain level)
JOHN.FOO@somewhere.com // valid (case insensitive)
@someserver // invalid
@someserver.com // invalid
john@. // invalid
.@somewhere.com // invalid
1
задан Ron Peleg 13 July 2018 в 08:51
поделиться

1 ответ

Когда вы отправите функцию другому ЦП с использованием smp_call_function_single, он будет выполняться обработчиком IPI, повторное включение всех прерываний внутри обработчика прерываний - это не то, что вы хотите сделать. В частности, в документации функции, которая выполняет вашу функцию , явно указано, что все IRQ должны быть отключены .

Когда процессор тот же, ваша функция выполняется просто, без отправки IPI, и поэтому ограничения generic_smp_call_function_single_interrupt и прерывания прерываний не применяются.

0
ответ дан smeso 17 August 2018 в 13:19
поделиться
  • 1
    Итак, если я хочу использовать другой cpus без cpu0, как мне это сделать с отключенными прерываниями? отправка NMI, в то время как другой процессор внутри обработчика прерываний по-прежнему плох. Я должен как-то разбудить их, чтобы предотвратить блокировку. благодаря – Ron Peleg 13 July 2018 в 11:44
  • 2
    Я не понимаю, что вы имеете в виду. Что вы пытаетесь сделать и почему? – smeso 13 July 2018 в 11:47
  • 3
    Я хочу выполнить некоторый код из одного ядра, в то время как другие ядра останавливаются, потому что я не хочу, чтобы любые другие ядра меняли или получали доступ к памяти до тех пор, пока 1-й ядро ​​не завершит свою работу. Я не хочу отключать прерывания в это время – Ron Peleg 13 July 2018 в 11:53
  • 4
    Разумеется, лучшим решением было бы использовать надлежащую блокировку для правильной защиты только той памяти, о которой вы заботитесь. В любом случае, вы, вероятно, могли бы создать N-1 kthreads и использовать их для остановки других процессоров. Но мне это не нравится. Что, если некоторые прерывания разбудят их? – smeso 13 July 2018 в 12:27
  • 5
    Спасибо за помощь. – Ron Peleg 13 July 2018 в 12:30
Другие вопросы по тегам:

Похожие вопросы: