On Thu, Apr 26, 2012 at 12:10 PM, Seth Goldberg <seth.goldb...@oracle.com> wrote: > How does this work around the issue? I'm not seeing it -- we call SNP > directly. We don't go through UDP or any other upper layers in efinet. When > I did the investigation, I removed ALL other consumers of SNP manually via > the efi shell before loading GRUB 2 and still saw packet loss.
Hi, Normal OS has interrupt handler that removes the packet from nic buffer as soon as possible, but grub2 is basically single thread and use pull mode. So we should make the pulling loop as short as possible. In async mode, if a packet is not found, it has to returned to upper layer and retry, while in sync mode, the loop is inside the driver which make it more efficient. It's something like reading 100 bytes from disk is much faster than 100 x 1 byte. -- Best wishes Bean _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel