[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <814b615b-fc5d-627a-a11e-c54796b1b08d@de.ibm.com>
Date: Tue, 24 Jul 2018 13:16:09 +0200
From: Christian Borntraeger <borntraeger@...ibm.com>
To: Huaisheng HS1 Ye <yehs1@...ovo.com>,
"linux-nvdimm@...ts.01.org" <linux-nvdimm@...ts.01.org>,
"dan.j.williams@...el.com" <dan.j.williams@...el.com>
Cc: "ross.zwisler@...ux.intel.com" <ross.zwisler@...ux.intel.com>,
"willy@...radead.org" <willy@...radead.org>,
"vishal.l.verma@...el.com" <vishal.l.verma@...el.com>,
"dave.jiang@...el.com" <dave.jiang@...el.com>,
"schwidefsky@...ibm.com" <schwidefsky@...ibm.com>,
"heiko.carstens@...ibm.com" <heiko.carstens@...ibm.com>,
"viro@...iv.linux.org.uk" <viro@...iv.linux.org.uk>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"axboe@...nel.dk" <axboe@...nel.dk>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"bart.vanassche@....com" <bart.vanassche@....com>,
"jack@...e.cz" <jack@...e.cz>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-s390@...r.kernel.org" <linux-s390@...r.kernel.org>,
"linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>,
NingTing Cheng <chengnt@...ovo.com>,
Huaisheng Ye <yehs2007@...o.com>
Subject: Re: [External] Re: [PATCH 3/5] s390, dcssblk: Allow a NULL-kaddr to
->direct_access()
On 07/24/2018 11:46 AM, Huaisheng HS1 Ye wrote:
> From: Christian Borntraeger <borntraeger@...ibm.com>
> Sent: Tuesday, July 24, 2018 4:54 PM
>> On 07/24/2018 10:45 AM, Huaisheng Ye wrote:
>>> From: Huaisheng Ye <yehs1@...ovo.com>
>>>
>>> dcssblk_direct_access() needs to check the validity of second rank
>>> pointer kaddr for NULL assignment. If kaddr equals to NULL, it
>>> doesn't need to calculate the value.
>>>
>>> Signed-off-by: Huaisheng Ye <yehs1@...ovo.com>
>>> ---
>>> drivers/s390/block/dcssblk.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
>>> index 0a312e4..9c13dc5 100644
>>> --- a/drivers/s390/block/dcssblk.c
>>> +++ b/drivers/s390/block/dcssblk.c
>>> @@ -915,7 +915,8 @@ static DEVICE_ATTR(save, S_IWUSR | S_IRUSR, dcssblk_save_show,
>>> unsigned long dev_sz;
>>>
>>> dev_sz = dev_info->end - dev_info->start + 1;
>>> - *kaddr = (void *) dev_info->start + offset;
>>> + if (kaddr)
>>> + *kaddr = (void *) dev_info->start + offset;
>>
>> So you are trading of a load + add (dev_info->start should be cache hot) against a
>> compare+branch . Not sure that this is always a win.
>
> Hmm...the calculation process of pfn is more complicated than kaddr. I think you agree to check pfn but not sure kaddr, right?
> From the logical consistency of code, I think it shall be better to give pfn and kaddr similar treatment.
Reading it again, its more that I do not like the patch description. It reads
like an optimization, (and I think it is not) but it should rather read more
like "with an upcoming change kaddr can be NULL" or so.
Powered by blists - more mailing lists