stec-inc / EnhanceIO

EnhanceIO Open Source for Linux
Other
420 stars 176 forks source link

proc_dir_entry 'enhanceio/cache1' already registered #102

Open rezass opened 9 years ago

rezass commented 9 years ago

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]

Ape commented 9 years ago

Is the cache still available after boot? I.e. do you see it in eio_cli info and /proc/enhanceio/?

rezass commented 9 years ago

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)

kdiogenes commented 8 years ago

@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?

Ape commented 8 years ago

@cerdiogenes, Try if pull request #103 helps. It should be easy to apply since it only modifies the user space Python script.

jackyding2679 commented 8 years ago

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.

kdiogenes commented 8 years ago

@Ape no lucky with this pull request, same error.

jackyding2679 commented 8 years ago

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.

jackyding2679 commented 8 years ago

@Ape Any idea?

kdiogenes commented 8 years ago

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.