Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Issues with inconsistent udev behavior.
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
ahferroin7
n00b
n00b


Joined: 26 Nov 2014
Posts: 10

PostPosted: Wed Sep 28, 2016 1:31 pm    Post subject: Issues with inconsistent udev behavior. Reply with quote

I recently started working on tweaking some networking settings on my system to try to get better responsiveness. I got it all working fine with a script in /etc/local.d, but I'd really like to get it set up so that they get applied by udev rules since I would like the settings applied to any USB networking adapters and virtual network devices I set up on this system after boot. I'm using eudev-3.2 with the old style interface naming. The udev rules I'm using (in /etc/udev/rules.d/99-x-local.rules) are:
Code:

KERNEL=="wlan*", SUBSYSTEM=="net", ACTION=="add", RUN(program)+="/usr/local/sbin/tc-setup.sh %E{INTERFACE}"
KERNEL=="eth*", SUBSYSTEM=="net", ACTION=="add", RUN(program)+="/usr/local/sbin/tc-setup.sh %E{INTERFACE}"
KERNEL=="tun*", SUBSYSTEM=="net", ACTION=="add", RUN(program)+="/usr/local/sbin/tc-setup.sh %E{INTERFACE}"


and /usr/local/sbin/tc-setup.sh contains:

Code:

#!/bin/bash

info=`/sbin/tc qdisc show dev $1 2>&1`
root=`grep root <<< ${info}`
if ( echo ${root} | grep -q pfifo_fast ) ; then
    /sbin/tc qdisc replace dev $1 handle 1 root prio
    /sbin/tc qdisc add dev $1 handle 11 parent 1:1 sfq limit 100 perturb 5
    /sbin/tc qdisc add dev $1 handle 12 parent 1:2 sfq limit 500 perturb 10
    /sbin/tc qdisc add dev $1 handle 13 parent 1:3 sfq limit 1000 perturb 15
elif ( echo ${root} | grep -q mq ) ; then
    queues=`grep -v mq <<< ${info} | wc -l`
    for i in `seq $queues` ; do
        /sbin/tc qdisc replace dev $1 handle ${i} parent :${i} prio
        /sbin/tc qdisc add dev $1 handle ${i}1 parent ${i}:1 sfq limit 100 perturb 5
        /sbin/tc qdisc add dev $1 handle ${i}2 parent ${i}:2 sfq limit 500 perturb 10
        /sbin/tc qdisc add dev $1 handle ${i}3 parent ${i}:3 sfq limit 1000 perturb 15
    done
fi


This runs correctly for tunX interfaces, but doesn't run for ethX or wlanX interfaces. It works find when invoked manually for any interface.

Output from `udevadm test --action=add /sys/class/net/eth0`:
Code:

calling: test
version 3.2
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          3
file size:         7182940 bytes
header size             80 bytes
strings            1814700 bytes
nodes              5368160 bytes
Load module index
timestamp of '/etc/udev/rules.d' changed
timestamp of '/lib/udev/rules.d' changed
Skipping overridden file: /lib64/udev/rules.d/90-network.rules.
Skipping overridden file: /lib64/udev/rules.d/80-net-name-slot.rules.
Reading rules file: /lib64/udev/rules.d/10-dm.rules
Reading rules file: /lib64/udev/rules.d/11-dm-lvm.rules
Reading rules file: /lib64/udev/rules.d/11-dm-mpath.rules
Reading rules file: /lib64/udev/rules.d/13-dm-disk.rules
Reading rules file: /lib64/udev/rules.d/40-gentoo.rules
Reading rules file: /lib64/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /lib64/udev/rules.d/41-libsane.rules
Reading rules file: /lib64/udev/rules.d/42-logitech-unify-ltunify.rules
Reading rules file: /lib64/udev/rules.d/50-udev-default.rules
Reading rules file: /lib64/udev/rules.d/56-hpmud.rules
Reading rules file: /lib64/udev/rules.d/56-multipath.rules
Reading rules file: /lib64/udev/rules.d/60-block.rules
Reading rules file: /lib64/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib64/udev/rules.d/60-drm.rules
Reading rules file: /lib64/udev/rules.d/60-evdev.rules
Reading rules file: /lib64/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib64/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib64/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib64/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib64/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib64/udev/rules.d/60-serial.rules
Reading rules file: /lib64/udev/rules.d/63-md-raid-arrays.rules
Reading rules file: /lib64/udev/rules.d/64-btrfs-dm.rules
Reading rules file: /lib64/udev/rules.d/64-btrfs.rules
Reading rules file: /lib64/udev/rules.d/64-md-raid-assembly.rules
Reading rules file: /lib64/udev/rules.d/65-kvm.rules
Reading rules file: /lib64/udev/rules.d/66-kpartx.rules
Reading rules file: /lib64/udev/rules.d/69-bcache.rules
Reading rules file: /lib64/udev/rules.d/69-dm-lvm-metad.rules
Reading rules file: /lib64/udev/rules.d/69-libmtp.rules
Reading rules file: /lib64/udev/rules.d/69-yubikey.rules
Reading rules file: /lib64/udev/rules.d/70-infrared.rules
Reading rules file: /lib64/udev/rules.d/70-mouse.rules
Reading rules file: /lib64/udev/rules.d/70-udev-acl.rules
Reading rules file: /lib64/udev/rules.d/70-yubikey.rules
Reading rules file: /lib64/udev/rules.d/75-net-description.rules
Reading rules file: /lib64/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib64/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /lib64/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Reading rules file: /lib64/udev/rules.d/77-mm-platform-serial-whitelist.rules
Reading rules file: /lib64/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-usb-device-blacklist.rules
Reading rules file: /lib64/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Reading rules file: /lib64/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /lib64/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /lib64/udev/rules.d/78-sound-card.rules
Reading rules file: /lib64/udev/rules.d/80-android.rules
Reading rules file: /lib64/udev/rules.d/80-drivers.rules
Reading rules file: /lib64/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /lib64/udev/rules.d/80-mm-candidate.rules
Skipping empty file: /etc/udev/rules.d/80-net-name-slot.rules
Reading rules file: /lib64/udev/rules.d/80-stelladaptor-joystick.rules
Reading rules file: /lib64/udev/rules.d/80-udisks2.rules
Reading rules file: /lib64/udev/rules.d/84-nm-drivers.rules
Reading rules file: /lib64/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /lib64/udev/rules.d/85-regulatory.rules
Reading rules file: /lib64/udev/rules.d/90-alsa-restore.rules
Reading rules file: /lib64/udev/rules.d/90-libinput-model-quirks.rules
Skipping empty file: /etc/udev/rules.d/90-network.rules
Reading rules file: /lib64/udev/rules.d/90-pulseaudio.rules
Reading rules file: /lib64/udev/rules.d/95-dm-notify.rules
Reading rules file: /lib64/udev/rules.d/95-upower-csr.rules
Reading rules file: /lib64/udev/rules.d/95-upower-hid.rules
Reading rules file: /lib64/udev/rules.d/95-upower-wup.rules
Reading rules file: /lib64/udev/rules.d/97-hid2hci.rules
Reading rules file: /lib64/udev/rules.d/99-HTC-Vive-perms.rules
Reading rules file: /lib64/udev/rules.d/99-fuse.rules
Reading rules file: /lib64/udev/rules.d/99-iscsi.rules
Reading rules file: /lib64/udev/rules.d/99-ntfs3g.rules
Reading rules file: /lib64/udev/rules.d/99-pcscd-hotplug.rules
Reading rules file: /lib64/udev/rules.d/99-steam-controller-perms.rules
Reading rules file: /lib64/udev/rules.d/99-wispy.rules
Reading rules file: /etc/udev/rules.d/99-x-local.rules
rules contain 393216 bytes tokens (32768 * 12 bytes), 33018 bytes strings
24752 strings (204218 bytes), 21274 de-duplicated (174679 bytes), 3479 trie nodes used
IMPORT builtin 'net_id' /lib64/udev/rules.d/75-net-description.rules:6
IMPORT builtin 'hwdb' /lib64/udev/rules.d/75-net-description.rules:12
RUN '/usr/local/sbin/tc-setup.sh %E{INTERFACE}' /etc/udev/rules.d/99-x-local.rules:25
created db file '/run/udev/data/n3' for '/devices/pci0000:00/0000:00:1f.6/net/eth0'
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1f.6/net/eth0
ID_BUS=pci
ID_MM_CANDIDATE=1
ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V
ID_MODEL_ID=0x1570
ID_NET_NAME_MAC=enx1c3947133089
ID_NET_NAME_PATH=enp0s31f6
ID_OUI_FROM_DATABASE=COMPAL INFORMATION (KUNSHAN) CO., LTD.
ID_PCI_CLASS_FROM_DATABASE=Network controller
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
ID_VENDOR_FROM_DATABASE=Intel Corporation
ID_VENDOR_ID=0x8086
IFINDEX=3
INTERFACE=eth0
SUBSYSTEM=net
USEC_INITIALIZED=5965947
run: '/usr/local/sbin/tc-setup.sh eth0'
Unload module index


indicates that /usr/local/sbin/tc-setup.sh should be getting run when eth0 gets processed, but it isn't.

At this point, I've tried just about everything I can think of with the rules and script, and can't figure this out, so I'm hoping someone else might have some insight into why this isn't working.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum