Re: netconsole fun

From: Neil Horman <nhorman@tuxdriver.com>
Date: 2013-05-05 00:59:34

Thanks for clarifying.  Glad to hear you got it working.  If your doing a lot of custom initramfs work, a distro dump package would be worth your investigation, as they have likely covered a lot of ground that you're traversing.

Best
Neil


Peter Hurley [off-list ref] wrote:
On 04/29/2013 02:21 PM, Neil Horman wrote:
quoted
On Mon, Apr 29, 2013 at 01:28:45PM -0400, Peter Hurley wrote:
quoted
On Mon, 2012-12-17 at 09:20 -0500, Neil Horman wrote:
quoted
On Sat, Dec 15, 2012 at 09:13:58AM -0500, Peter Hurley wrote:
quoted
On Fri, 2012-12-14 at 09:20 -0500, Neil Horman wrote:
quoted
Ah!  I'm sorry, I didn't realize this was really about getting netconsole up
early in the boot, rather than just getting it up robustly using the startup
script.
Well, it's both but I should have been clearer here. Sorry about that.
quoted
If thats the case, then I would recommend that you modify the initramfs
to do something simmilar to the startup script (since thats where the netconsole
module will get loaded anyway).  You can write a script there that will let you
specify the destination ip address and figure out the output dev based on the
routing tables.  If you're using dracut to build your initramfs, then this
should be pretty straightforward.
When I get some more free time I'll experiment with this approach.

Just to clarify something from earlier in the discussion:

On Thu, 2012-12-13 at 13:08 -0500, Neil Horman wrote:
quoted
On Thu, Dec 13, 2012 at 09:49:31AM -0500, Peter Hurley wrote:
....
quoted
quoted
There is an unforeseen consequence of the patch: it breaks device
renaming because the device will already be in use by netconsole. Which
is the whole problem with userspace device renaming to begin with...
That is bad, but see above, the netconsole service can work around this for you,
allowing you to never have to specify a particular device at all.
The breakage is a normal consequence of being able to load netconsole
before the udev rules that do device renaming. The same thing would
happen modifying initramfs.

Basically, once netconsole attaches to a device, that device cannot be
renamed. Unfortunately, the default udev behavior messes things up
further because it will try to do this:
   eth0->eth1
   eth1->eth0
which means neither device will be renamed.

Maybe the net core should just implement persistent device names ;)
Theres no good way for the kernel to do that, as persistent naming in this case
is a matter of user policy, not kernel hardware management (i.e. do you want a
network name to follow a mac address, a pci slot, or the network its connected
to)?  You can use smbios to get some modicum of persistent device naming
currently, but I don't recall if that requires udev rules to implement as well

You're best bet is to simply make your initramfs more robust.  I understand what
you're saying regarding renaming after you've taken a reference on a device not
being possible, but you can run udev within the initramfs, and do your renaming
prior to your netconsole load.
Hi Neil,

I plan to re-submit 'netconsole: allow mac addr to specify local
interface device' which you originally objected to because you asserted
that the same effect could be obtained through udev scripts in the
initramfs.

When you shot down this patch, did you actually try what you suggested
in the initramfs or were you just hypothesizing that it would possible?
I've not tried specifically what want to do, no, but I've done interface
renaming plenty of times in the initramfs back when I did kdump work (we had to
rename devices in the initramfs to align them with whatever udev renamed them to
once we pivot_root-ed to the rootfs).

I presume you're sending me this note because you've for some reason decided
that doing this in the initramfs isn't feasible?  I'm happy to help you through
it if you like.
Neil,

I owe you an apology.

Performing the udev device renaming and modprobing netconsole
with the renamed device interface is indeed possible within initramfs.
Once I had managed to get udev device renaming working in the initramfs,
I had confused myself regarding which interface went with which MAC address.

Have a good weekend.

Regards,
Peter Hurley
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help