2013-03-25 48 views
1

我的要求是將數據存儲在內核中..數據是來自網絡的輸入數據包..它可能在大小上不同,並且必須存儲例如250ms的持續時間。並且應該有5個這樣的候選對象哪些內核級別的內存管理是必需的..因爲數據包來的速度非常快..我的做法是分配一個大內存,每個這樣的候選人說2MB內存..bez kmalloc和kfree的定時開銷..任何幫助嗎?內核級內存處理編碼

+0

對不起,我沒有關注..你的問題是..「使用內核內存池有問題嗎?」? – Mike 2013-03-25 13:43:10

+0

我的需求如下..我需要處理在Linux內核級別..在哪裏來自網絡的數據包(TCP/IP)的速度爲1mbps ..我需要存儲的數據包,例如250ms..and數據包大小可能不同..由於kmalloc和kfree需要一些時間來做..我需要一個大的內存塊,例如2mb ..這將被分配一次,永遠不會釋放,直到我需要..在Linux內核中可以做到的 – kernelCoder 2013-03-25 13:51:25

+0

這些通常由'skbufs' afaik支持的** scatter-gather **處理。 – 2013-03-25 13:57:51

回答

1

sk_buffs是一個通用的答案是與網絡相關的或作爲Mike指出一個kernel memory cache是更通用的回答你的問題。不過,我相信你可能有put a solution before the question

帶有LTE/HSDPA/GSM的瓶頸是驅動程序,以及如何從設備獲取數據到CPU。這取決於硬件連接的方式。您是否使用SPI,UART,SDHC,USB,PCI?

此外,至少與HSDPA,您需要一個ppp連接。 LTE不一樣嗎?以太網不是在這種情況下使用的模型。通常你需要模擬一個高速的tty。另外,n_gsm提供網絡接口;我不完全熟悉這個界面,但我懷疑這是爲了支持LTE。這不好documented。此外,還有Option USB串行驅動程序,如果這是您正在使用的硬件。 An example patch使用n_gsm來處理LTE;我相信這個補丁已被重新編入當前的n_gsm網絡支持。

您需要告訴我們更多關於您的硬件的信息。