proc_dir_entry 'enhanceio/cache1' already registered
Opened this issue · 9 comments
Creating a cache in CentOS 7.0 and rebooting twice, results in a few errors in dmesg.
They're, however, not critical.
[root@localhost ~]# uname -r
3.10.0-229.11.1.el7.x86_64
[root@localhost ~]# dmesg | grep eio
[ 3.491817] enhanceio: module verification failed: signature and/or required key missing - tainting kernel
[ 3.606403] enhanceio: Slow (clean) shutdown detected
[ 3.606406] enhanceio: Only clean blocks exist in cache
[ 3.606410] enhanceio_lru: eio_lru_instance_init: created new instance of LRU
[ 3.606411] enhanceio: Setting replacement policy to lru (2)
[ 3.606414] enhanceio: Allocate 2038KB (8B per) mem for 260864-entry cache (capacity:1023MB, associativity:256, block size:4096 bytes)
[ 3.608124] enhanceio: Slow (clean) shutdown detected
[ 3.608125] enhanceio: Only clean blocks exist in cache
[ 3.608131] enhanceio_lru: eio_lru_instance_init: created new instance of LRU
[ 3.608132] enhanceio: Setting replacement policy to lru (2)
[ 3.608135] enhanceio: Allocate 2038KB (8B per) mem for 260864-entry cache (capacity:1023MB, associativity:256, block size:4096 bytes)
[ 3.676583] enhanceio: Cache metadata loaded from disk with 4 valid 0 dirty blocks
[ 3.676586] enhanceio: Setting mode to write back
[ 3.676609] enhanceio_lru: Initialized 1019 sets in LRU
[ 3.686351] enhanceio: Cache metadata loaded from disk with 4 valid 0 dirty blocks
[ 3.686353] enhanceio: Setting mode to write back
[ 3.686376] enhanceio_lru: Initialized 1019 sets in LRU
[ 3.717234] proc_dir_entry 'enhanceio/cache1' already registered
[ 3.717235] Modules linked in: enhanceio_rand(OF) enhanceio_lru(OF) enhanceio_fifo(OF) enhanceio(OF) sg coretemp crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ppdev vmw_balloon aesni_intel lrw gf128mul glue_helper ablk_helper cryptd pcspkr serio_raw vmw_vmci i2c_piix4 shpchp dm_mirror dm_region_hash dm_log dm_mod parport_pc parport ext4 mbcache jbd2 sd_mod sr_mod cdrom crc_t10dif crct10dif_common ata_generic pata_acpi vmwgfx drm_kms_helper ttm mptspi ata_piix scsi_transport_spi drm vmxnet3 mptscsih i2c_core mptbase libata floppy
[ 3.717261] CPU: 0 PID: 467 Comm: eio_cli Tainted: GF O-------------- 3.10.0-229.11.1.el7.x86_64 #1
[ 3.717294] [] eio_procfs_ctr+0x2e/0x220 [enhanceio]
[ 3.717297] [] eio_cache_create+0x9cf/0xb10 [enhanceio]
[ 3.717300] [] eio_ioctl+0x2df/0x310 [enhanceio]
[ 3.717326] sysctl duplicate entry: /dev/enhanceio/cache1//zero_stats
[ 3.717368] CPU: 0 PID: 467 Comm: eio_cli Tainted: GF W O-------------- 3.10.0-229.11.1.el7.x86_64 #1
[ 3.717392] [] eio_procfs_ctr+0x18f/0x220 [enhanceio]
[ 3.717395] [] eio_cache_create+0x9cf/0xb10 [enhanceio]
[ 3.717397] [] eio_ioctl+0x2df/0x310 [enhanceio]
Is the cache still available after boot? I.e. do you see it in eio_cli info
and /proc/enhanceio/
?
Yes they are available.
Currently I'm testing with a virtual machine in ESX 6.0 (I had to set a configuration parameters so that ESX pass UUID for virtual disks that I'm using in VM)
@Ape, I'm getting the same error, but eio_cli info return "No caches Found" and there is no entry in /proc/enhanceio/. There is anything I can do?
@cerdiogenes, Try if pull request #103 helps. It should be easy to apply since it only modifies the user space Python script.
I'm getting the same error in centos7 too.
#uname -r
3.10.0-229.el7.x86_64
I add some trace log in /etc/udev/94-enhanceio-eio1.rules
#cat /etc/udev/rules.d/94-enhanceio-eio1.rules
...
TEST!="/proc/enhanceio/eio1", PROGRAM="/bin/sh -c 'echo -------enable ssd cache >> /root/dingl/eio1msg'", RUN+="/sbin/eio_cli enable -d /dev/$env{disk_name} -s /dev/$env{ssd_name} -m wb -b 4096 -p lru -c eio1"
....
It shows that eio1 was been enabled twice:
#cat eio1msg
-------enable ssd cache
-------enable ssd cache
but i don't know how to fix this problem.
I reproduced this issue by doing this,enable eio1 twice at the same time:
#eio_cli enable -d /dev/sde2 -s /dev/sdc1 -p lru -m wb -b 4096 -c eio1 &
[1] 3134
#eio_cli enable -d /dev/sde2 -s /dev/sdc1 -p lru -m wb -b 4096 -c eio1 &
[2] 3140
ssd cache is still avaliable ,but sysctl info is gone:
#eio_cli info | grep eio1
Cache Name : eio1
#ls /proc/enhanceio/
eio1 eio2 eio3 eio4 eio5 eio6 eio7 eio8 version
#sysctl -a | grep eio1
There may be a bug in .rules file: /etc/udev/rules.d/94-enhanceio-eio.rules,or it is a udev problem.
@Ape Any idea?
Sometimes I don't get any error and I can see stats about my cache in /proc/enhanceio. A concurrency problem, but I don't understand how the kernel loads all this, so I can't help much more.