containers/netns/netns_sysfs.sh: add kernel version check
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
Sysfs is not mount namespace aware until applying following kernel patches in mainline kernel v2.6.35:
a1b3f59 net: Expose all network devices in a namespaces in sysfs 417daa1 hotplug: netns aware uevent_helper
d6523dd net/sysfs: Fix the bitrot in network device kobject namespace support 608b4b9 netns: Teach network device kobjects which namespace they are in
--- testcases/kernel/containers/netns/netns_sysfs.sh | 5 +++++ 1 file changed, 5 insertions(+)
testcases/kernel/containers/netns/netns_sysfs.sh +5 -0
@@ -29,6 +29,11 @@ DUMMYDEV_HOST="dummy_test0" DUMMYDEV="dummy_test1" . test.sh +tst_kvercmp 2 6 35 +if [ $? -eq 0 ]; then + tst_brkm TCONF "sysfs is not mount namespace aware for kernels older than 2.6.35" +fi + setns_check if [ $? -eq 32 ]; then tst_brkm TCONF "setns not supported"
Signature · 1 line
1.8.4.2
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
Hi!
Ping, thanks!
Regards,
Guangwen Feng
Quoted 31 lines · Guangwen Feng
Sysfs is not mount namespace aware until applying following kernel patches in mainline kernel v2.6.35:
a1b3f59 net: Expose all network devices in a namespaces in sysfs 417daa1 hotplug: netns aware
uevent_helper
d6523dd net/sysfs: Fix the bitrot in network device kobject namespace support 608b4b9 netns: Teach network device kobjects which namespace they are inSigned-off-by Guangwen Feng <[email protected]>Tested-by Matus Marhefka <[email protected]>--- testcases/kernel/containers/netns/netns_sysfs.sh | 5 +++++ 1 file changed, 5 insertions(+)testcases/kernel/containers/netns/netns_sysfs.sh +5
-0@@ -29,6 +29,11 @@ DUMMYDEV_HOST="dummy_test0" DUMMYDEV="dummy_test1" . test.sh +tst_kvercmp 2 6 35 +if [ $? -eq 0 ]; then + tst_brkm TCONF "sysfs is not mount namespace aware for kernels older than 2.6.35" +fi + setns_check if [ $? -eq 32 ]; then tst_brkm TCONF "setns not supported"
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
In reply to Guangwen FengQuoted 19 lines · Guangwen Feng
Sysfs is not mount namespace aware until applying following kernel patches in mainline kernel v2.6.35:
a1b3f59 net: Expose all network devices in a namespaces in sysfs 417daa1 hotplug: netns aware
uevent_helper
d6523dd net/sysfs: Fix the bitrot in network device kobject namespace support 608b4b9 netns: Teach network device kobjects which namespace they are inSigned-off-by Guangwen Feng <[email protected]>Tested-by Matus Marhefka <[email protected]>--- testcases/kernel/containers/netns/netns_sysfs.sh | 5 +++++ 1 file changed, 5 insertions(+)testcases/kernel/containers/netns/netns_sysfs.sh +0
-0
testcases/kernel/containers/netns/netns_sysfs.sh DUMMYDEV_HOST="dummy_test0" · line 33
Quoted 5 lines
testcases/kernel/containers/netns/netns_sysfs.sh +2
-0@@ -29,6 +29,11 @@ DUMMYDEV_HOST="dummy_test0" DUMMYDEV="dummy_test1" . test.sh +tst_kvercmp 2 6 35 +if [ $? -eq 0 ]; then
Just out of curiosity - I see this used on more places, but can't understand why would you use this instead of simply
if tst_kvercmp 2 6 35; then
Any reason behind that? Am I missing a test writing rule?
Thanks.
Quoted 7 lines
testcases/kernel/containers/netns/netns_sysfs.sh +3
-0+ tst_brkm TCONF "sysfs is not mount namespace aware for kernels older than 2.6.35" +fi + setns_check if [ $? -eq 32 ]; then tst_brkm TCONF "setns not supported"
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
Hi!
Quoted 23 lines · Jiri Jaburek
Quoted 22 lines · Guangwen Feng
Sysfs is not mount namespace aware until applying following kernel patches in mainline kernel v2.6.35:
a1b3f59 net: Expose all network devices in a namespaces in sysfs 417daa1 hotplug: netns aware
uevent_helper
d6523dd net/sysfs: Fix the bitrot in network device kobject namespace support 608b4b9 netns: Teach network device kobjects which namespace they are inSigned-off-by Guangwen Feng <[email protected]>Tested-by Matus Marhefka <[email protected]>--- testcases/kernel/containers/netns/netns_sysfs.sh | 5 +++++ 1 file changed, 5 insertions(+)testcases/kernel/containers/netns/netns_sysfs.sh +0
-0@@ -29,6 +29,11 @@ DUMMYDEV_HOST="dummy_test0" DUMMYDEV="dummy_test1" . test.sh
Quoted 7 lines
testcases/kernel/containers/netns/netns_sysfs.sh DUMMYDEV_HOST="dummy_test0" · line 33
Quoted 2 lines
testcases/kernel/containers/netns/netns_sysfs.sh +2
-0+tst_kvercmp 2 6 35 +if [ $? -eq 0 ]; thenJust out of curiosity - I see this used on more places, but can't understand why would you use this instead of simply
if
tst_kvercmp2 6 35; then
Sure, this is simpler.
Thanks for reminding.
Quoted 2 lines
Any reason behind that? Am I missing a test writing rule?
There is no reason to me, I am just used to this.
Sorry, I am not sure whether there is a test writing rule about it either.
Best Regards,
Guangwen Feng
Quoted 10 lines
Thanks.
Quoted 7 lines
testcases/kernel/containers/netns/netns_sysfs.sh +3
-0+ tst_brkm TCONF "sysfs is not mount namespace aware for kernels older than 2.6.35" +fi + setns_check if [ $? -eq 32 ]; then tst_brkm TCONF "setns not supported"
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
In reply to Jiri JaburekHi!
Quoted 9 lines
testcases/kernel/containers/netns/netns_sysfs.sh DUMMYDEV_HOST="dummy_test0" · line 33
Quoted 2 lines
testcases/kernel/containers/netns/netns_sysfs.sh +2
-0+tst_kvercmp 2 6 35 +if [ $? -eq 0 ]; thenJust out of curiosity - I see this used on more places, but can't understand why would you use this instead of simply
if
tst_kvercmp2 6 35; thenAny reason behind that? Am I missing a test writing rule?
The most probable reason would be that the tst_kvercmp actually returns ternary result (older than, equal or newer is mapped to 0, 1, 2) so if you want to anything else than "kernel is older" check you have to examine the $?.
Maybe I sould write a new tst_kvercmp for the new shell library that would work similar to the test shell buildin so that we can do something as:
if tst_kvercmp -nq "2.6.35" -o "3.8"; then
...
fi
where the modifiers would stand for:
n newer
nq newer or equal
o older
oq older or equal
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
Quoted 22 lines · Cyril Hrubis
Hi!
Quoted 9 lines
testcases/kernel/containers/netns/netns_sysfs.sh DUMMYDEV_HOST="dummy_test0" · line 33
Quoted 2 lines
testcases/kernel/containers/netns/netns_sysfs.sh +2
-0+tst_kvercmp 2 6 35 +if [ $? -eq 0 ]; thenJust out of curiosity - I see this used on more places, but can't understand why would you use this instead of simply
if
tst_kvercmp2 6 35; thenAny reason behind that? Am I missing a test writing rule?
The most probable reason would be that the
tst_kvercmpactually returns ternary result (older than, equal or newer is mapped to 0, 1, 2) so if you want to anything else than "kernel is older" check you have to examine the $?.Maybe I sould write a new
tst_kvercmpfor the new shell library that would work similar to the test shell buildin so that we can do something as:if
tst_kvercmp-nq "2.6.35" -o "3.8"; then...
Quoted 8 lines
fi
where the modifiers would stand for:
n newer
nq newer or equal
o older
oq older or equal
If you're going to use letters for this, I suggest re-using what the 'test' a.k.a. '[' command has: -eq, -lt, -ge, -ne, etc.
If multiple options (like in your example) are supported, re-using the logic from 'test' could also be a good idea: -a (and), -o (or), although shell-based && or || might be more obvious.
if tst_kvercmp -ge "2.6.35" -a -lt "3.8"; then ...
if tst_kvercmp -ge "2.6.35" && tst_kvercmp -lt "3.8"; then ...
Quoted 1 line
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
Hi!
Quoted 10 lines
Quoted 6 lines
where the modifiers would stand for:
n newer
nq newer or equal
o older
oq older or equalIf you're going to use letters for this, I suggest re-using what the 'test' a.k.a. '[' command has: -eq, -lt, -ge, -ne, etc.
Quoted 7 lines
If multiple options (like in your example) are supported, re-using the logic from 'test' could also be a good idea: -a (and), -o (or), although shell-based && or || might be more obvious.
if
tst_kvercmp-ge "2.6.35" -a -lt "3.8"; then ...if
tst_kvercmp-ge "2.6.35" &&tst_kvercmp-lt "3.8"; then ...
Sounds good. I will look into this.
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
In reply to Jiri JaburekHi!
Quoted 10 lines
If you're going to use letters for this, I suggest re-using what the 'test' a.k.a. '[' command has: -eq, -lt, -ge, -ne, etc.
If multiple options (like in your example) are supported, re-using the logic from 'test' could also be a good idea: -a (and), -o (or), although shell-based && or || might be more obvious.
if
tst_kvercmp-ge "2.6.35" -a -lt "3.8"; then ...if
tst_kvercmp-ge "2.6.35" &&tst_kvercmp-lt "3.8"; then ...
FYI:
https://github.com/metan-ucw/ltp/commit/f18331dd1e2ff0772c71abf4c444de6487dbce87
Signature · 2 lines
Cyril Hrubis [email protected]
PATCH 1/1 containers/netns/netns_sysfs.sh: add kernel version check
In reply to Guangwen FengHi!
Pushed, thanks.
Signature · 2 lines
Cyril Hrubis [email protected]