mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: scameron@beardog.cce.hp.com
To: Tejun Heo <tj@kernel.org>
Cc: axboe@kernel.dk, neilb@suse.de, hch@infradead.org,
	jmoyer@redhat.com, hare@suse.de, vgoyal@redhat.com,
	stephenmcameron@gmail.com, linux-kernel@vger.kernel.org,
	lsorense@csclub.uwaterloo.ca, scameron@beardog.cce.hp.com
Subject: Re: [RFC PATCH] block: Add new generic block device naming interface
Date: Thu, 25 Apr 2013 17:12:20 -0500	[thread overview]
Message-ID: <20130425221220.GM7917@beardog.cce.hp.com> (raw)
In-Reply-To: <20130425211459.GC10990@mtj.dyndns.org>

On Thu, Apr 25, 2013 at 02:14:59PM -0700, Tejun Heo wrote:
> Hello,
[...]
> > 
> > Right now, if you add a new block driver, if you want grub to be able
> > to boot it, you also have to modify grub.  This is true for each new
> > block driver that comes along.  This is not the case for SCSI HBA
> > drivers, because they all get to share the sd driver and its device
> > name space, and grub already knows about that.  You can add all kinds
> > of SCSI HBA drivers and never have to worry about needing to modify
> > grub to get boot support.
> 
> So, the question, I suppose, is why grub needs to be changed when the
> stem of device names changes.  Why does it need to do that?  Is it
> just an implementation detail or is it something more fundamental?
> 

I don't know.  I do know that it looks like a lot of the the various block
device name schemes are more or less hard coded into grub with bits of code
like this:

	static void
	get_ide_disk_name (char *name, int unit)
	{
	#if defined(__linux__)
	  /* GNU/Linux */
	  sprintf (name, "/dev/hd%c", unit + 'a');
	#elif defined(__GNU__)
	  /* GNU/Hurd */
	  sprintf (name, "/dev/hd%d", unit);
	#elif defined(__FreeBSD_kernel__)
	[...]

	static void
	get_scsi_disk_name (char *name, int unit)
	{
	#if defined(__linux__)
	  /* GNU/Linux */
	  sprintf (name, "/dev/sd%c", unit + 'a');
	#elif defined(__GNU__)
	  /* GNU/Hurd */
	  sprintf (name, "/dev/sd%d", unit);
	#elif defined(__FreeBSD_kernel__)

there are about 9 different get_blah_disk_name() type functions in there
for the various device naming schemes.

It looks like these are called from a function called init_device_map() 
that is called from grub_stage2() at least in the version of grub I looked
at (0.97, from rhel6).

So my assumption is that adding a new block driver with yet another name space
would require adding another bit of code into grub like those above.  When I
asked about "best practices" for new block driver device names on the grub devel
mailing list to minimize required changes to grub, nobody argued against that
assumption. 

-- steve



  reply	other threads:[~2013-04-25 22:13 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-25 20:22 Stephen M. Cameron
2013-04-25 20:40 ` Tejun Heo
2013-04-25 21:07   ` scameron
2013-04-25 21:14     ` Tejun Heo
2013-04-25 22:12       ` scameron [this message]
2013-04-26 19:03         ` Tejun Heo
2013-04-29 14:56           ` Hannes Reinecke
2013-04-29 15:17             ` Vivek Goyal
2013-04-29 16:06             ` Tejun Heo
  -- strict thread matches above, loose matches on Subject: below --
2013-03-28 16:18 Stephen M. Cameron
2013-03-11 19:00 Stephen M. Cameron

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=20130425221220.GM7917@beardog.cce.hp.com \
    --to=scameron@beardog.cce.hp.com \
    --cc=axboe@kernel.dk \
    --cc=hare@suse.de \
    --cc=hch@infradead.org \
    --cc=jmoyer@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lsorense@csclub.uwaterloo.ca \
    --cc=neilb@suse.de \
    --cc=stephenmcameron@gmail.com \
    --cc=tj@kernel.org \
    --cc=vgoyal@redhat.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

Powered by JetHome