Re: simple memory malloc and free in ip_output.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you sirs. But in fact, I don't alloc/free for every packet. I did exactly as what you said---reuse. 

I am a little confused why GFP_ATOMIC can work but GFP_KERNEL will cause the system to panic.  Does it because that GFP_KERNEL can sleep in kmalloc, then ip_xmit_queue will be held or something? But anyway, GFP_ATOMIC works perfectly.


On Thu, Jan 2, 2014 at 1:15 AM, Mulyadi Santosa <mulyadi.santosa@xxxxxxxxx> wrote:
On Thu, Jan 2, 2014 at 12:41 PM,  <Valdis.Kletnieks@xxxxxx> wrote:
> On Thu, 02 Jan 2014 12:12:49 +0700, Mulyadi Santosa said:
>
>> Other than what others have said, IMHO it is better to avoid such
>> rapid alloc/free, assuming your code fragment is running on every
>> packet reception/sending.
>>
>> Instead, I suggest to allocate the memory before the ip_queue_xmit and
>> use-reuse it inside ip_queue_xmit.
>
> Be careful with re-entrancy issues - you'll want a separate instance of memory
> for all possible concurrent callers of ip_queue_xmit (you may need one per
> active interface, because you can e transmitting packets on multiple interfaces
> at the same time).

Ah yes, you're correct Valdis. Thanks for note.




--
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux