Вопросы с тегом «linux-kernel»

Этот тег предназначен для вопросов о внутреннем устройстве самого ядра Linux - особенно о написании кода, который выполняется в контексте ядра (например, модули ядра или драйверы). Вопросы о написании кода пользовательского пространства в Linux обычно следует помечать тегом [linux]. Поскольку внутреннее устройство ядра Linux постоянно меняется, полезно указать точные версии ядра, которые вас интересуют.

14
Как «перевести в спящий режим» процесс в Linux, сохранив его память на диск и позже восстановив?
Можно ли перевести процесс в спящий режим в Linux? Как и в режиме гибернации в ноутбуке, я бы записал всю память, используемую процессом, на диск, освободив оперативную память. А потом, позже, я могу «возобновить процесс», т. Е. Прочитать все данные из памяти и вернуть их в ОЗУ, и я смогу …

3
Контекст переключается намного медленнее в новых ядрах Linux
Мы планируем обновить ОС на наших серверах с Ubuntu 10.04 LTS до Ubuntu 12.04 LTS. К сожалению, кажется, что задержка для запуска потока, который стал работоспособным, значительно увеличилась с ядра 2.6 до ядра 3.2. На самом деле в получаемые нами значения задержки трудно поверить. Позвольте мне уточнить тест. У нас …

2
Чтение / запись файлов в модуле ядра Linux
Я знаю все дискуссии о том, почему не следует читать / записывать файлы из ядра, вместо этого, как использовать / proc или netlink для этого. Я все равно хочу читать / писать. Я также прочитал Driving Me Nuts - Вещи, которые вы никогда не должны делать в ядре . Однако …

3
Если потоки используют один и тот же PID, как их можно идентифицировать?
У меня есть запрос, связанный с реализацией потоков в Linux. Linux не имеет явной поддержки потоков. В пользовательском пространстве мы можем использовать библиотеку потоков (например, NPTL) для создания потоков. Теперь, если мы используем NPTL, он поддерживает отображение 1: 1. Ядро будет использовать эту clone()функцию для реализации потоков. Предположим, я создал …

6
Как избежать предупреждения transparent_hugepage / defrag от mongodb?
Я получаю следующее предупреждение от mongodb о THP 2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' Но мне удалось отключить THP вручную frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] Я сделал трюк, добавив …

2
Что такое? = В Makefile
KDIR ?= $(shell uname -r) В чем смысл ?=? Я понял разницу между :=, +=и =из другого потока , доступного в переполнение стека, но не в силах найти объяснение ?=.

2
Что такое vdso и vsyscall?
я сделал sudo cat /proc/1/maps -vv Я пытаюсь разобраться в выводе и вижу, как много разделяемых библиотек сопоставляются с сегментом отображения памяти, как и ожидалось. 7f3c00137000-7f3c00179000 r-xp 00000000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00179000-7f3c00379000 ---p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00379000-7f3c0037a000 r--p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037a000-7f3c0037b000 rw-p 00043000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037b000-7f3c00383000 …
89 c  linux  linux-kernel  kernel  vdso 

3
Использование gdb для пошагового ассемблерного кода за пределами указанного исполняемого файла вызывает ошибку «не удается найти границы текущей функции»
У меня нет целевого исполняемого файла gdb, и у меня даже нет стека, соответствующего этой цели. В любом случае я хочу пошагово, чтобы я мог проверить, что происходит в моем коде сборки, потому что я не эксперт в сборке x86. К сожалению, GDB отказывается выполнять эту простую отладку на уровне …

1
Изображение против zImage против uImage
В чем разница между ними? Я знаю, что u-boot нужно ядро ​​в формате uImage. Система, которую я использую, сначала загружается с загрузчика этапа 1, а затем вызывает u-boot. Я хочу отказаться от u-boot и напрямую загружаться с загрузчика этапа 1. Какой тип образа ядра мне нужно использовать?

2
Использование плавающей точки в ядре Linux
Я читал книгу Роберта Лава «Разработка ядра Linux» и наткнулся на следующий отрывок: Нет (простого) использования плавающей точки Когда процесс пользовательского пространства использует инструкции с плавающей запятой, ядро ​​управляет переходом из целочисленного режима в режим с плавающей запятой. Что должно делать ядро ​​при использовании инструкций с плавающей запятой, зависит от …

5
Выбор планировщика ввода-вывода Linux
Я читал, что якобы возможно изменить планировщик ввода-вывода для конкретного устройства в работающем ядре, записав в / sys / block / [disk] / queue / scheduler. Например, в своей системе я вижу: anon@anon:~$ cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq] что по умолчанию задан полностью справедливый планировщик очередей. Мне интересно, есть …

4
Зачем нужны пустые скобки '{}' в конце массива структур?
Я ударил некоторых с код в ядре Linux: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = &log_invalid_proto_max, …

2
TCP-отправка с нулевым копированием в пространстве памяти dma_mmap_coherent ()
Я использую Linux 5.1 на платформе Cyclone V SoC, которая представляет собой FPGA с двумя ядрами ARMv7 в одном чипе. Моя цель - собрать много данных с внешнего интерфейса и передать (часть) эти данные через сокет TCP. Проблема в том, что скорость передачи данных очень высока и может приблизиться к …

1
Зачем определять макрос для функции с тем же именем?
Я нашел код ниже в https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) { return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i); } #define arch_atomic_sub_and_test arch_atomic_sub_and_test что на #defineсамом деле делает? Когда это необходимо?
12 c  linux-kernel 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.