Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1352253pxk; Mon, 31 Aug 2020 17:29:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzDn1IqjDnfOpFBRMoQ0XmTrRrhKDjbW7L0iDs3tdnfoTjbWl+4MYfqk27NbhnpS1Fwn2kA X-Received: by 2002:a05:6402:1b1d:: with SMTP id by29mr3373562edb.96.1598920146944; Mon, 31 Aug 2020 17:29:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598920146; cv=none; d=google.com; s=arc-20160816; b=jGSrqCxcL3ogYAIe05+sshIPf4N/W9q6tC3dKi595e52hT+mnuQujraHEgkPC5koKz wSpWcGJPggjlLY5FSzJs8jyLz33FtmwXjoueFUhqorKEhswT7DtFPHQNE3sPQdu0wJvv 5xhtotsIffdputCzVWjM0IBJWd3B0K76C9VrH0tUmH4ji3s9NsutIbMReGoZecvKsh7Y O1As4TfRLdhD31XcAAaKgGACRRKhTPa8aMxKMi9vzfGgkZ/3Ars2pSEOXvPn2LU0Ti67 uvQplAbFjRURtKpTGztLy3fx5DlGPA4F8WjLaQ49k61/lDZWc/iuh94h26gRYG9mMnK2 VHQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:content-transfer-encoding:date :message-id:in-reply-to:cc:to:from:reply-to:subject:mime-version :dkim-signature:dkim-filter; bh=OF1Pv++QhXZYlFTml4PQgnKmM92CjP4TjcSJp36bjlQ=; b=uGuWmjsfuU5XANvtkJ4vL7LfDeTrVqcYKHST5wsNcmDIWo9SDvHoqQs0epFXwGUkdL POeKgiD4t3jbJ2K5JOmSEtuaU5qjlFrMHq6qfw1gyHKjTn4tx/7D/k2r2mhsOKPZT2es +I8dce6Y9o00tFNH1mF8zB3oWgNirRPS9jKoBRfqDwRzXpyfRZTxn7v0xFK8FWwM/LBV +ALbZF5Seo53UVRBHYi6W2IATyGvzir0hhKI9CDhqfdZfE97JONDW2ZB0hYe+K5RIEX7 tfMQc9DX1xRpydDFluOY9TH7m4bta/7ZYIfaQ3dwuhDVYqy/XM0b7/PF7EtOQ0a2EuoN zRIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=Mb0W21sA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t7si6042194edc.145.2020.08.31.17.28.44; Mon, 31 Aug 2020 17:29:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=Mb0W21sA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726224AbgIAA2J (ORCPT + 99 others); Mon, 31 Aug 2020 20:28:09 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:48898 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725872AbgIAA2J (ORCPT ); Mon, 31 Aug 2020 20:28:09 -0400 Received: from epcas1p2.samsung.com (unknown [182.195.41.46]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20200901002803epoutp04a4e6cd37163acbdc6c8e1da96983483f~wgVhKpbu82000120001epoutp04C for ; Tue, 1 Sep 2020 00:28:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20200901002803epoutp04a4e6cd37163acbdc6c8e1da96983483f~wgVhKpbu82000120001epoutp04C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1598920083; bh=OF1Pv++QhXZYlFTml4PQgnKmM92CjP4TjcSJp36bjlQ=; h=Subject:Reply-To:From:To:CC:In-Reply-To:Date:References:From; b=Mb0W21sAzpiW/X8VtyBgpRWEtnd638SG1T0MW1FjtWBt5GHu18kIONSPVeAztoIBj FfzDVQZnRqGPsQuDzR7KeG9gfFz+w6+pYAjvgxiha/Zpdei8NApxCZA9miXw9gni4e 6SCV/NnDjxg7r/m9PPdQ81z3x765h3TqkTM630Aw= Received: from epcpadp2 (unknown [182.195.40.12]) by epcas1p3.samsung.com (KnoxPortal) with ESMTP id 20200901002802epcas1p331f2e1e6a83c76992b163b522132e121~wgVf98voU2184021840epcas1p3j; Tue, 1 Sep 2020 00:28:02 +0000 (GMT) Mime-Version: 1.0 Subject: Re: [PATCH v9 2/4] scsi: ufs: Introduce HPB feature Reply-To: daejun7.park@samsung.com From: Daejun Park To: Bart Van Assche , Daejun Park , "avri.altman@wdc.com" , "jejb@linux.ibm.com" , "martin.petersen@oracle.com" , "asutoshd@codeaurora.org" , "beanhuo@micron.com" , "stanley.chu@mediatek.com" , "cang@codeaurora.org" , "tomas.winkler@intel.com" , ALIM AKHTAR CC: "linux-scsi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Sang-yoon Oh , Sung-Jun Park , yongmyung lee , Jinyoung CHOI , Adel Choi , BoRam Shin X-Priority: 3 X-Content-Kind-Code: NORMAL In-Reply-To: <93f1cf18-30da-4482-9a0d-c46d2f70bd15@acm.org> X-CPGS-Detection: blocking_info_exchange X-Drm-Type: N,general X-Msg-Generator: Mail X-Msg-Type: PERSONAL X-Reply-Demand: N Message-ID: <963815509.21598920082632.JavaMail.epsvc@epcpadp2> Date: Tue, 01 Sep 2020 09:24:29 +0900 X-CMS-MailID: 20200901002429epcms2p392aaaa25de16b387c15ed4387a0321dd Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: AUTO_CONFIDENTIAL X-CPGSPASS: Y X-CPGSPASS: Y X-Hop-Count: 3 X-CMS-RootMailID: 20200828070950epcms2p5470bd43374be18d184dd802da09e73c8 References: <93f1cf18-30da-4482-9a0d-c46d2f70bd15@acm.org> <963815509.21598598782155.JavaMail.epsvc@epcpadp2> <231786897.01598601302183.JavaMail.epsvc@epcpadp1> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Bart > > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h > > index 618b253e5ec8..df30622a2b67 100644 > > --- a/drivers/scsi/ufs/ufshcd.h > > +++ b/drivers/scsi/ufs/ufshcd.h > > @@ -588,6 +588,24 @@ struct ufs_hba_variant_params { > > u16 hba_enable_delay_us; > > u32 wb_flush_threshold; > > }; > > +#ifdef CONFIG_SCSI_UFS_HPB > > +/** > > + * struct ufshpb_dev_info - UFSHPB device related info > > + * @num_lu: the number of user logical unit to check whether all lu finished > > + * initialization > > + * @rgn_size: device reported HPB region size > > + * @srgn_size: device reported HPB sub-region size > > + * @slave_conf_cnt: counter to check all lu finished initialization > > + * @hpb_disabled: flag to check if HPB is disabled > > + */ > > +struct ufshpb_dev_info { > > + int num_lu; > > + int rgn_size; > > + int srgn_size; > > + atomic_t slave_conf_cnt; > > + bool hpb_disabled; > > +}; > > +#endif > > Please insert a blank line above "#ifdef CONFIG_SCSI_UFS_HPB" OK, I will insert a blank line. > > +/* HPB enabled lu list */ > > +static LIST_HEAD(lh_hpb_lu); > > Is it necessary to maintain this list? Or in other words, is it possible to > change all list_for_each_entry(hpb, &lh_hpb_lu, list_hpb_lu) calls into > shost_for_each_device() calls? OK, I will remove lh_hpb_lu. > > +/* SYSFS functions */ > > +#define ufshpb_sysfs_attr_show_func(__name) \ > > +static ssize_t __name##_show(struct device *dev, \ > > + struct device_attribute *attr, char *buf) \ > > +{ \ > > + struct scsi_device *sdev = to_scsi_device(dev); \ > > + struct ufshpb_lu *hpb = sdev->hostdata; \ > > + if (!hpb) \ > > + return -ENOENT; \ > > + return snprintf(buf, PAGE_SIZE, "%d\n", \ > > + atomic_read(&hpb->stats.__name)); \ > > +} \ > > +static DEVICE_ATTR_RO(__name) > > Please leave a blank line after declarations (between the "hpb" declaration > and "if (!hpb)"). OK, I will add a blank line. > > +#ifndef CONFIG_SCSI_UFS_HPB > > +[...] > > +static struct attribute *hpb_dev_attrs[] = { NULL,}; > > +static struct attribute_group ufs_sysfs_hpb_stat_group = {.attrs = hpb_dev_attrs,}; > > +#else > > +[...] > > +extern struct attribute_group ufs_sysfs_hpb_stat_group; > > +#endif > > Defining static variables or arrays in header files is questionable because > the definition of these variables will be duplicated in each source file that > header file is included in. Although the general rule for kernel code is to > confine #ifdefs to header files, for ufs_sysfs_hpb_stat_group I think that > it is better to surround its use with #ifndef CONFIG_SCSI_UFS_HPB / #endif > instead of defining a dummy structure as static variable in a header file if > HPB support is disabled. OK, I added #ifdef in ufshcd.c. static const struct attribute_group *ufshcd_driver_groups[] = { &ufs_sysfs_unit_descriptor_group, &ufs_sysfs_lun_attributes_group, #ifdef CONFIG_SCSI_UFS_HPB &ufs_sysfs_hpb_stat_group, #endif NULL, }; Thanks, Daejun