grub-devel.gnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Brown <mcb30@ipxe.org>
To: Andrew Fish <afish@apple.com>, Laszlo Ersek <lersek@redhat.com>
Cc: The development of GNU GRUB <grub-devel@gnu.org>,
	"Ye, Ting" <ting.ye@intel.com>,
	edk2-devel-01 <edk2-devel@ml01.01.org>,
	"arvidjaar@gmail.com" <arvidjaar@gmail.com>,
	"glin@suse.com" <glin@suse.com>,
	Seth Goldberg <seth.goldberg@oracle.com>,
	Mark Salter <msalter@redhat.com>
Subject: Re: [edk2] [grub PATCH] efinet: disable MNP background polling
Date: Thu, 15 Oct 2015 23:57:52 +0100	[thread overview]
Message-ID: <56202F70.3060000@ipxe.org> (raw)
In-Reply-To: <D2A5864B-2755-467A-928D-25528317C3E2@apple.com>

On 15/10/15 23:33, Andrew Fish wrote:
> The EFI Driver Model, lets you connect and disconnect, drivers as needed. The EFI networking stack supports the EFI Manged Network Protocol to help manage the network stack configuration. This is what was intended for normal operation.
>
> I’m just guessing but the iPXE developers have to deal with multiple environments (Legacy BIOS, EFI, …) and probably picked a path that allowed all these “worlds” to have a similar code flow. So the EFI OpenProtocol  EXCLUSIVE probably mapped into the other flows where iPXE just takes over. If you are maintaining a complex networking stack (iPXE) trying to make it as common as possible in all its various ports does not seem like an unreasonable goal, but you might not end up with the ideal implementation for each environment.

That's part of it.  Other important reasons are:

1. We want to minimise our exposure to buggy firmware implementations, 
by using as few of the firmware-provided facilities as possible.  If we 
have a native iPXE driver for the NIC hardware then we will explicitly 
rip out any attached MNP, SNP and NII drivers, plug ourselves in (via 
the UEFI driver model) as the driver for the underlying PCI device, and 
control the hardware directly.  If we don't have a native driver (e.g. 
in snponly.efi) then we'll fall back to ripping out just MNP and SNP and 
taking exclusive ownership of the NII device.

2. We actually care about performance.  A "good" MNP-attached driver 
might be able to achieve 10Mbps on a 1000Mbps NIC.  We expect to achieve 
the full 1000Mbps in iPXE.

However, the fact that iPXE takes exclusive ownership of the underlying 
device should not matter, because we always expose a new device handle 
onto which we install SNP, NII, PxeBc, LoadFile, etc.  Whatever we load 
will be given this new handle as the DeviceHandle.

Michael


  reply	other threads:[~2015-10-15 22:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-01  9:26 [PATCH] efinet: disable MNP background polling HATAYAMA Daisuke
2015-10-01 11:50 ` [grub PATCH] " Laszlo Ersek
2015-10-01 17:53   ` Andrei Borzenkov
2015-10-01 22:04     ` Yinghai Lu
2015-10-02  3:48       ` Andrei Borzenkov
2015-10-09 10:15     ` HATAYAMA Daisuke
2015-10-13 22:11     ` Daniel Kiper
2015-10-13 22:23       ` Laszlo Ersek
2015-10-14  1:01       ` Yinghai Lu
2015-10-14  7:00         ` Andrei Borzenkov
2015-10-09 10:10   ` HATAYAMA Daisuke
2015-10-09 11:19     ` Laszlo Ersek
2015-10-13 21:49   ` Daniel Kiper
2015-10-13 22:21     ` Laszlo Ersek
2015-10-13 22:56       ` Daniel Kiper
2015-10-14  0:43       ` Seth Goldberg
2015-10-14  5:19       ` [edk2] " Ye, Ting
2015-10-14  5:57         ` Andrei Borzenkov
2015-10-14  6:15           ` Ye, Ting
2015-10-14  6:58             ` Andrei Borzenkov
2015-10-14  8:00               ` Ye, Ting
2015-10-14 17:52                 ` Andrei Borzenkov
2015-10-14 11:08         ` Daniel Kiper
2015-10-14 15:39           ` Seth Goldberg
2015-10-15  2:11             ` Ye, Ting
2015-10-15 18:14               ` Laszlo Ersek
2015-10-15 22:33                 ` Andrew Fish
2015-10-15 22:57                   ` Michael Brown [this message]
2015-10-15 23:38                   ` Laszlo Ersek
2015-10-29 14:47             ` Vladimir 'φ-coder/phcoder' Serbinenko
2015-10-01 17:40 ` [PATCH] " Andrei Borzenkov
2015-10-09 10:30   ` HATAYAMA Daisuke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56202F70.3060000@ipxe.org \
    --to=mcb30@ipxe.org \
    --cc=afish@apple.com \
    --cc=arvidjaar@gmail.com \
    --cc=edk2-devel@ml01.01.org \
    --cc=glin@suse.com \
    --cc=grub-devel@gnu.org \
    --cc=lersek@redhat.com \
    --cc=msalter@redhat.com \
    --cc=seth.goldberg@oracle.com \
    --cc=ting.ye@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).