私の要件は、カーネルにデータを保存することです.データはネットワークからの着信パケットです..サイズが異なる場合があり、たとえば250ミリ秒の期間を保存する必要があります..カーネルレベルのメモリ管理が必要な候補が5つあるはずです. ..パケットは非常に高速に送信されるため..私のアプローチは、そのような候補ごとに 2 MB のメモリなどの大きなメモリを割り当てることです..bez kmalloc と kfree にはタイミング オーバーヘッドがあります..それに関するヘルプはありますか?
2 に答える
sk_buff
sはネットワーク関連の一般的な回答です。または、Mikeがカーネル メモリ キャッシュを指摘しているように、質問に対するより一般的な回答です。ただし、質問の前に解決策を提示した可能性があると思います。
LTE/HSDPA/GSM のボトルネックは、ドライバーと、デバイスから CPU にデータを取得する方法です。これは、ハードウェアの接続方法によって異なります。SPI、UART、SDHC、USB、PCI を使用していますか?
また、少なくとも HSDPA では、ppp
接続が必要です。LTEも同じじゃない?この場合、イーサネットは使用するモデルではありません。通常、高速の tty をエミュレートする必要があります。また、n_gsmはネットワーク インターフェイスを提供します。私はこのインターフェースに完全に精通しているわけではありませんが、これはLTE
. これは十分に文書化されていません。また、これが使用しているハードウェアである場合は、オプションのUSB シリアル ドライバーもあります。LTE の処理に使用するパッチの例。このパッチは、現在のネットワーク サポートn_gsm
に作り直されたと思います。n_gsm
ハードウェアについて詳しく教えてください。
コメント内ですでに述べたように:
struct sk_buff
、そしてそれはその正確な特定の目的のために作成されます
たとえば、http://www.linuxfoundation.org/collaborate/workgroups/networking/skbuffを参照してください。