On 02/17/2016 05:01 PM, Chris Leech wrote: > The global cache is not well designed, it quickly can grow to the point > where lookups take much longer than just doing the sysfs read in the > first place. > --- > usr/host.c | 1 + > usr/session_info.c | 1 + > usr/sysfs.c | 62 > ++++++++++++------------------------------------------ > 3 files changed, 16 insertions(+), 48 deletions(-) > > diff --git a/usr/host.c b/usr/host.c > index f2052d3..6333490 100644 > --- a/usr/host.c > +++ b/usr/host.c > @@ -274,6 +274,7 @@ int host_info_print(int info_level, uint32_t host_no) > printf("iSCSI Transport Class version %s\n", > version); > printf("version %s\n", ISCSI_VERSION_STR); > + free(version); > } > > flags |= SESSION_INFO_SCSI_DEVS; > diff --git a/usr/session_info.c b/usr/session_info.c > index 2f48e65..89422d8 100644 > --- a/usr/session_info.c > +++ b/usr/session_info.c > @@ -390,6 +390,7 @@ int session_info_print(int info_level, struct > session_info *info, int do_show) > printf("iSCSI Transport Class version %s\n", > version); > printf("version %s\n", ISCSI_VERSION_STR); > + free(version); > } > > flags |= (SESSION_INFO_SCSI_DEVS | SESSION_INFO_HOST_DEVS); > diff --git a/usr/sysfs.c b/usr/sysfs.c > index 6520bf6..efd4f74 100644 > --- a/usr/sysfs.c > +++ b/usr/sysfs.c > @@ -63,15 +63,6 @@ char sysfs_path[PATH_SIZE]; > /* device cache */ > static LIST_HEAD(dev_list); > > -/* attribute value cache */ > -static LIST_HEAD(attr_list); > - > -struct sysfs_attr { > - struct list_head node; > - char path[PATH_SIZE]; > - char *value; /* points to value_local if value is > cached */ > - char value_local[NAME_SIZE]; > -}; > int sysfs_init(void) > { > const char *env; > @@ -85,22 +76,14 @@ int sysfs_init(void) > dbg("sysfs_path='%s'", sysfs_path); > > INIT_LIST_HEAD(&dev_list); > - INIT_LIST_HEAD(&attr_list); > return 0; > } > > void sysfs_cleanup(void) > { > - struct sysfs_attr *attr_loop; > - struct sysfs_attr *attr_temp; > struct sysfs_device *dev_loop; > struct sysfs_device *dev_temp; > > - list_for_each_entry_safe(attr_loop, attr_temp, &attr_list, node) { > - list_del_init(&attr_loop->node); > - free(attr_loop); > - } > -
Patch looks good. Thanks for working on this. Is the device cache not as a issue because there are a lot fewer devices/cache entries, or because we just to not go down that code path as often? -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscr...@googlegroups.com. To post to this group, send email to open-iscsi@googlegroups.com. Visit this group at https://groups.google.com/group/open-iscsi. For more options, visit https://groups.google.com/d/optout.