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.

Reply via email to