What a wonderful and well-designed video lecture that explained such a cutting-edge complex technology with such simplicity and confidence...! No wonder why IIT is praised so much for their great productivity of quality engineers.. Heartish love from BUET, Bangladesh...
Good intro. Would be good to start with the overheads involved in context switching, locking, cache miss penalties. Maybe those are part of another/previous video?
Amazing video. Needed this concept for my own algo-trading. Was researching faster processing ideas and big name hedge funds are also looking at bypass kernel methods. This video provides the skeleton solution which can be scaled up by engineers.
Hello Mam, i want to learn how exactly packet move once packet received in NIC card. Detail step by step packet processing. Plz guide me or if there is any way to learn this from you.
In the RX path, if the application is already blocked on the read() system call, does the bottom half processing involve moving the application's kernel thread to the READY queue, after the data is copied to the user buffer?
Hey, thanks a lot for uploading this wonderful explanation! From the video I understood that there are only 2 cpu context switches for a packet RX stage (for top half and bottom half processing). In that perspective I have few basic queries here, 1. When the NIC driver creates the ring buffer when the packets are received, does it steal any cpu cycles ? (as it was mentioned that the cpu will be working on user mode and interruption is done after the creation of ring buffers) 2. Does not the L3/L4 processing come under the bottom half processing as around 9:15, it was mentioned that context switching happens after the processing. If not then does L3/L4 processing need a different context switch by cpu for processing? Will appreciate your help in understanding these, Thank you!
Thanks for your kind words, Anvin! Yes, these are some interesting questions, and hopefully the following clarifies your queries. 1. The TX/RX rings are the descriptors (pointers) to the packet buffers. Both data structures, rings & packet buffers, are allocated in DRAM by the NIC driver in advance. These data structures are static and are specific to the network device (NIC). So, coming back to your question, on packet receive the ring buffer is not created, the packets are copied from the hardware (NIC) buffers to the ring buffers using DMA. Yes, DMA steals the CPU's system bus for memory copy but the CPU does not context switch, we can consider that the CPU may halt for a while. Also, DMA could transfer a huge bunch of buffered packets at once. 2. Yes, L3/L4 processing is part of the bottom half processing as softirqs. You can find details about RX bottom half processing here "www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-10-SECT-7.html". After L4 processing the listening application is signaled to inform that the packet is available in the socket buffer for consumption. I hope this answers your queries.
That explains well, thank you. Also could you share the link to the slides (or via email), I would like to browse through the reference links embedded in them.
HI, Thanks for this nice lecture and this is really helpfull. Around 25:40, you are talking about the another lecture on epoll. I am unable to find out the same. Can you please point me to the same? Thanks! in advance.
Hey, thank you! This lecture was part of a course and it referred to a prior lecture which is not publicly available. However, you can look for notes related to epoll here: ruclips.net/video/2TrQXSFgqBY/видео.html
I found the explanations very lucidly conveyed. At least the kernel part . The style .. like a newsreader.. was a bit distracting and often difficult to follow . Would have been better if you talked as if you are talking to a friend rather than this so reading off a news article style.
Good lecture, but Priyanka was evidently reading from a writeup. That is a horrible way to teach. If you know your stuff, you shouldn't have to write paragraphs of what you are going to talk about.
This is the best video I watched to explain how a NIC work and DPDK. Thanks !
Excellent explanation. Great job !!
This video is wonderful , short and crispy, thanks
Nice introduction to inner working of linux network
This is best videos on DPDK on there on internet , thnk you very much .
What a wonderful and well-designed video lecture that explained such a cutting-edge complex technology with such simplicity and confidence...! No wonder why IIT is praised so much for their great productivity of quality engineers.. Heartish love from BUET, Bangladesh...
U have saved lot of time madam. Thanks for the video. I'm really looking dpdk continues video. Please make a video on dpdk.
Thank you, Satish. The follow up video on DPDK can be found here:
ruclips.net/video/VJ8CVN3oXMw/видео.html
Wow. Lecture is short, but when i get into understanding this it took much more time to remember all of this information.
Amazing content on networking stack
Very easy understandable and even beginners can gain lot of information
Excellent content and clear delivery on kernel bypass and linux networking i/o processing. Thanks :)
very very very usefull!!! Wow!!!
best simple without any unneeded details but very precise explanation
Awsm explanation - loved it!
Thank You!
Good intro. Would be good to start with the overheads involved in context switching, locking, cache miss penalties. Maybe those are part of another/previous video?
excellent video and technical details. thank you.
this is excellent tutorial of kernel bypass
Nice video with good explanation. Appreciate the effort.
Great video, very well organized. Defiantly will be downloading this
Fantastic explanation, thank you for this
Amazing video. Needed this concept for my own algo-trading. Was researching faster processing ideas and big name hedge funds are also looking at bypass kernel methods. This video provides the skeleton solution which can be scaled up by engineers.
why does trading algo need to care about packet forwarding level optimization?
every millisecond is money
@@shivangupadhyay8002 kernel bypassing saves from interrupts , context switches, thus saves cache and latency.
Excellent resource - very clear and informative.
Wonderful presentation. Thanks
very good content and very nice presentation
Superb explanation... appreciate the effort put in.
can you pls make a video on vector packet processing too..
Very good content.
I’m interested in learning the Linux kernel network programming, and this is really good start! I’ll connect to seek some guidance. Thanks
Great Explanation
AMAZING VIDEO YOU HAVE A NEW SUBSCRIBER FOR SURE
Very Nice explanation
very well presented!
Hello Nice Overview , Do you have any example that implements UDP server/client using DPDK ?
This was very useful!, thank you
helped me a lot, thank you very much .
Excellent !!
Great lecture
When fragmentation and reassembly happens , do we have one sk buff or multiple ?
Hey, thank you, can you also make videos on network optimization techniques by changing the TCP/IP kernel paramters
Sure! Thanks for the suggestion!
CAN you do a detailed video on eBPF please
Hello Mam, i want to learn how exactly packet move once packet received in NIC card. Detail step by step packet processing. Plz guide me or if there is any way to learn this from you.
Ton of information
Hi Priyanka , Upload such videos
What a video.. Thanks
In the RX path, if the application is already blocked on the read() system call, does the bottom half processing involve moving the application's kernel thread to the READY queue, after the data is copied to the user buffer?
In Dpdk , the dma is done from userspace ?
well explained
nice one!!
Hey, thanks a lot for uploading this wonderful explanation! From the video I understood that there are only 2 cpu context switches for a packet RX stage (for top half and bottom half processing). In that perspective I have few basic queries here,
1. When the NIC driver creates the ring buffer when the packets are received, does it steal any cpu cycles ? (as it was mentioned that the cpu will be working on user mode and interruption is done after the creation of ring buffers)
2. Does not the L3/L4 processing come under the bottom half processing as around 9:15, it was mentioned that context switching happens after the processing. If not then does L3/L4 processing need a different context switch by cpu for processing?
Will appreciate your help in understanding these, Thank you!
Thanks for your kind words, Anvin! Yes, these are some interesting questions, and hopefully the following clarifies your queries.
1. The TX/RX rings are the descriptors (pointers) to the packet buffers. Both data structures, rings & packet buffers, are allocated in DRAM by the NIC driver in advance. These data structures are static and are specific to the network device (NIC). So, coming back to your question, on packet receive the ring buffer is not created, the packets are copied from the hardware (NIC) buffers to the ring buffers using DMA. Yes, DMA steals the CPU's system bus for memory copy but the CPU does not context switch, we can consider that the CPU may halt for a while. Also, DMA could transfer a huge bunch of buffered packets at once.
2. Yes, L3/L4 processing is part of the bottom half processing as softirqs. You can find details about RX bottom half processing here "www.embeddedlinux.org.cn/linux_net/0596002556/understandlni-CHP-10-SECT-7.html". After L4 processing the listening application is signaled to inform that the packet is available in the socket buffer for consumption.
I hope this answers your queries.
That explains well, thank you. Also could you share the link to the slides (or via email), I would like to browse through the reference links embedded in them.
@@anvinthomasjohn You can find the slides here.
github.com/rinku-shah/kernel-bypass/blob/master/Kernel-bypass-final.pdf
Thank you Rinku!
HI, Thanks for this nice lecture and this is really helpfull. Around 25:40, you are talking about the another lecture on epoll. I am unable to find out the same. Can you please point me to the same? Thanks! in advance.
Hey, thank you! This lecture was part of a course and it referred to a prior lecture which is not publicly available. However, you can look for notes related to epoll here:
ruclips.net/video/2TrQXSFgqBY/видео.html
Very nice information 👍 , so any other consecutive tutorials are available ?
It would be very much helpful if you explain the things with the kernel code side by side. Otherwise it would not be very much helpful.
I found the explanations very lucidly conveyed. At least the kernel part .
The style .. like a newsreader.. was a bit distracting and often difficult to follow .
Would have been better if you talked as if you are talking to a friend rather than this so reading off a news article style.
very vague and elementary level explanation of Kernel bypass .... poor content
Good lecture, but Priyanka was evidently reading from a writeup. That is a horrible way to teach. If you know your stuff, you shouldn't have to write paragraphs of what you are going to talk about.
This video is wonderful , short and crispy, thanks