Описание тега kmalloc

The kmalloc function performs fast dynamic memory allocation and is part of the Linux Kernel API.
2 ответа

Что означает GFP в флагах kmalloc?

Каково значение GFP флаги в kmalloc? Например GFP_KERNEL, GFP_ATOMIC?
27 июн '12 в 09:51
0 ответов

Когда мы используем vmalloc и kmalloc?

Я знаю, что kmalloc выделяет непрерывную память в физической памяти, а также виртуальную память, vmalloc выделяет непрерывную память в виртуальной памяти, но это не гарантирует, что память, выделенная в физической памяти, будет смежной. Поэтому каже…
20 июн '18 в 09:25
0 ответов

Как я могу получить строки, которые расположены по определенному виртуальному адресу в Ubuntu?

У меня есть указатель на массив с символами. char *myArr = kmalloc(100, GFP_KERNEL); //put message in kernel for(int i = 0; i < 100; ++i) { myArr[i] = x30; //put symbols here } printk(KERN_INFO "The string is located at virtual address %p, physic…
08 окт '17 в 10:44
1 ответ

Почему рекурсивные вызовы файловой системы были бы плохой идеей, когда GFP_NOFS маскируется

Со страницы LDD3 214: GFP_NOIOGFP_NOFSЭти флаги действуют как GFP_KERNEL, но они добавляют ограничения на то, что ядро ​​может сделать, чтобы удовлетворить запрос. Распределению GFP_NOFS не разрешено выполнять какие-либо вызовы файловой системы, в т…
30 дек '15 в 05:00
0 ответов

Как я могу выделить память более 32 Мб для передачи dma на PCI-устройство

Привет, я хочу выделить более 32 Мб памяти для передачи DMA между системной памятью и устройством PCIe. API-интерфейс dma_alloc_coherent() может выделять только до 32 МБ. Использование аргумента mem в аргументе загрузки представляется возможным, но …
29 янв '19 в 09:14
0 ответов

Kmalloc в dentry_open(): паника ядра

Я работаю над ядром Linux 2.6.34.14. Я добавил (в include/linux/fs.h) в файл структуры указатель на структуру, определенную ранее, таким образом: struct session{ char *session_buffer; loff_t session_dimension; }; struct file { struct session *sess_p…
30 ноя '13 в 10:34
1 ответ

Может ли kmalloc() вернуть неверную память?

Я пишу модуль ядра Linux, в котором я реализовал связанный список. Я знаю, что в ядре Linux есть список API, но когда я его реализовал, я не знал, поэтому реализовал его, обрабатывая необработанный указатель с помощью kmalloc(). После нескольких час…
27 дек '13 в 12:29
0 ответов

Назначение указателя структуры вызывает замораживание ядра

У меня есть структура в ядре Linux, как показано ниже: struct st_fetch_point { struct sk_buff *end_pkt ; struct sk_buff *start_pkt ; struct sk_buff *current_pkt ; struct st_fetch_point *next_fortp ; struct st_fetch_point *next_consec ; }; У меня ест…
03 июл '18 в 17:42
1 ответ

Физический адрес адреса, возвращаемого kmalloc

Я немного запутался в адресах, которые мне возвращает kmalloc. Согласно карте виртуальной памяти, адреса, которые я получаю, находятся в ffff880000000000 - ffffc7ffffffffff диапазон, так что "прямое отображение всей физ. памяти". Как работает это от…
0 ответов

Отключение oom killer влияет на область, выделенную kmalloc()?

Моя версия ядра Linux - 2.6.34.13Процессор Powerpc. Я хотел бы полностью отключить OOM-killer как в пользовательском процессе, так и в модуле ядра. Конфигурируя с помощью следующих параметров, я отключил oom killer. vm.overcommit_memory = 2 vm.overc…
21 ноя '13 в 08:10
1 ответ

Объяснить параметры и использование devm_kzalloc

Я новичок в программировании драйверов ядра и хотел бы понять несколько аспектов. В приведенном ниже коде от http://lxr.free-electrons.com/source/drivers/i2c/busses/i2c-ocores.c?v=3.19 static int ocores_i2c_probe(struct platform_device *pdev) { stru…
18 июн '16 в 20:52
0 ответов

Привет. Я пытаюсь выделить память в ядре Linux с помощью kmalloc

Я пытаюсь выделить память в ядре Linux с помощью kmalloc. У меня есть структура, разработанная как показано ниже: struct st_fetch_point { struct sk_buff *end_pkt ; struct sk_buff *start_pkt ; struct sk_buff *current_pkt ; struct st_fetch_point *next…
26 июн '18 в 16:51
2 ответа

Выделяется ли память kmalloc() когда-либо автоматически?

Я пишу драйвер устройства, который, помимо прочего, выделяет блок памяти с kmalloc, Эта память освобождается, когда пользовательская программа закрывает файл. В одном из моих экспериментов пользовательская программа не работала без закрытия файла. Ч…
25 июл '12 в 19:42
1 ответ

Использование kmalloc в драйвере устройства

В задании, которое у меня есть, я должен создать драйвер устройства для колоды карт. Однако у меня возникли проблемы с использованием kmalloc на массиве структур. Массив строит колоду и имеет размер 52. У меня пока есть следующее (очевидно, оно непо…
11 апр '14 в 03:11
0 ответов

Драйвер требует больших кусков непрерывной физической памяти

Мне нужно изменить драйвер сетевого адаптера, чтобы увеличить его производительность для моего использования, и мне нужен огромный кусок физической памяти, чтобы быть непрерывным. Мне понадобится несколько таких кусков в зависимости от количества по…
16 ноя '16 в 18:29
1 ответ

Непрерывная физическая память с использованием kmalloc на гостевой

Я реализую драйвер устройства в гостевой ОС. Для этого мне нужно выделить буферное пространство, которое требуется для непрерывной физической памяти. Гарантирует ли выделение буфера с помощью kmalloc в гостевой ОС непрерывный физический адрес? Если …
1 ответ

Как отключить кеш-память в модулях ядра

В настоящее время я пытаюсь разработать драйвер для Linux, чтобы использовать пользовательский модуль, разработанный в FPGA. Для этого я использую Xilinx Zynq SoC с дистрибутивом Linux, который работает на 2 ядрах ARM, а мои модули VHDL реализованы …
21 мар '16 в 11:43
2 ответа

Объявить память, чтобы структурировать в C

У меня есть структура ABC в одном файле struct abc { some variaables and functions } Я использую эту структуру в другом файле следующим образом: struct abc *t = kmalloc(sizeof(struct abc));kmalloc эквивалентен malloc тогда происходят следующие ошибк…
07 апр '14 в 00:04
1 ответ

Передача списка значений в пространство ядра

Я работаю над проектом Linux. Мне нужно передать список целочисленных значений в ядро ​​из пользовательской программы. Я реализовал системный вызов для этого. В программе userpace у меня был следующий код. Значение num_values получается из аргументо…
04 июл '14 в 15:57
1 ответ

Пул памяти в драйвере ядра для нескольких процессов

Предположим, мы хотим сохранить пул памяти в драйвере или модуле устройства. Как можно создать этот пул и сделать его доступным для нескольких процессов, скажем, 4 процесса, обращающихся к этому драйверу / модулю. Предположим, 1 МБ памяти в пуле. Ко…