По умолчанию рабочая функция вызывается с заданным значением работы.Внутри потока элемент данных структуры может быть легко получен.Также Gnurou, чтобы получить доступ к большему количеству данных, рабочую структуру можно поместить в специфическую для реализации структуру, а с помощью контейнера макроса внутри потока можно получить доступ ко всем данным.
Простое описание рабочей очереди
worqueue - обработка прерываний в нижней половине механизма, где часть работы передается потоку ядра для последующего выполнения с предварительным включением при включении прерываний.События потока percpu / n создаются ядром, потоки также могут создаваться кодом драйверов. Структура используется для идентификации потока, важным параметром внутри структуры является поле имени. Оно также содержит структуру per CPU, которая, в свою очередь,содержит заголовок очереди ожидания, который ожидает поток, и список ссылок для добавления структуры, определяющей работу, т.е. функцию и данные. Рабочий поток получает эту структуру в качестве входного параметра. Поток запускается и ожидает очереди ожидания, чтобы кто-топробудить нитьСоздается рабочая структура, определяющая функцию.Когда рабочая очередь является расписанием, структура добавляется в конец списка ссылок, и рабочий поток просыпается.При пробуждении рабочий поток проходит по списку ссылок, определенному в структуре на процессор, и начинает выполнять функции, определенные с рабочей структурой в качестве параметра.После выполнения удаляет запись из списка ссылок.