Thread (10 messages) flat view 10 messages, 3 authors, 2012-02-08

Re: network regression: cannot rename netdev twice

From: Jiri Slaby <hidden>
Date: 2012-01-31 11:00:43
Also in: lkml

On 01/31/2012 11:52 AM, Kay Sievers wrote:
On Tue, Jan 31, 2012 at 11:41, Jiri Slaby [off-list ref] wrote:
quoted
On 01/30/2012 11:52 PM, Kay Sievers wrote:
quoted
2012/1/30 Jiri Slaby [off-list ref]:
quoted
I cannot boot properly with this commit:
commit 524b6c5b39b931311dfe5a2f5abae2f5c9731676
Author: Eric W. Biederman [off-list ref]
Date:   Sun Dec 18 20:09:31 2011 -0800

   sysfs: Kill nlink counting.

1) network systemd rule doesn't start network
What does that mean? What's a network systemd rule?
Oh, perhaps you call it a service file, not rule file?

Anyway this is a different bug. Revert of the patch above does not help.
Ok, fine. I checked too, and systemd does not play any silly games
with link counts.
quoted
The bug lays in the network layer. udev is unable to perform persistent
eth naming:
# ip link set eth0 name eth1    -- this one is OK
# ip link set eth1 name eth0
RTNETLINK answers: No such file or directory
Please make sure nothing tries to swap netif names in userspace. We
have given up that approach, because it is far too fragile to
temporary rename devices to be able to swap the names, and race
against the loading of new kernel network drivers at the same time.

This might be a new kernel problem here, but in general that approach
is just broken, we have have given up fiddling around here. Udev does
not do that anymore, and also the code that currently *can* be used to
do this, will be removed from udev in the future.

Network devices can only be renamed to a namespace that isn't ethX,
and which does not race against kernel names.
I have two eth interfaces. The one on the motherboard is named eth0, an
added PCI card is eth1. But kernel enumerates them in the opposite order.

So udev does this sequence:
eth1 -> rename3
eth0 -> eth1
rename3 -> eth0

How it can do it differently? (This is openSUSE factory.)
Does is work, if you rename the devices to something else than ethX?
Negative:
# ip link set eth0 name krtek
# ip link set krtek name jezek
RTNETLINK answers: No such file or directory

thanks,
-- 
js
suse labs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help