All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <jdelvare-l3A5Bk7waGM@public.gmane.org>
To: "Luck, Tony" <tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Mauro Carvalho Chehab
	<mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org,
	Aristeu Rozanski <aris-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Rafael J. Wysocki" <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
	linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Qiuxu Zhuo <qiuxu.zhuo-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>,
	Lv Zheng <lv.zheng-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Borislav Petkov <bp-l3A5Bk7waGM@public.gmane.org>,
	Len Brown <lenb-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH 4/5] firmware: dmi: Add function to look up a handle and return DIMM size
Date: Sat, 10 Mar 2018 14:22:17 +0100	[thread overview]
Message-ID: <20180310142217.0054dc35@endymion> (raw)
In-Reply-To: <20180309230357.iz7fx47qywx4ijnj@agluck-desk>

Hi Tony,

On Fri, 9 Mar 2018 15:03:58 -0800, Luck, Tony wrote:
> I got side-tracked reading the standard with the ancient ways
> used to report size back in the day when kilobytes was a
> plausible unit. So I wrote code that covers all the crazy
> cases.  Persistant DIMMs have sizes measured in gigabytes.
> I should stop worrying about "0" vs. "fffffff" and just treat
> the old cases as errors and simplify the code to be:
> 
> 	u32 mbytes;
> 
> 	if (size == 0 || (size & 0x8000))
> 		mbytes = 0;
> 	if (size != 0x7fff)

"else" missing.

> 		mbytes = size;
> 	else
> 		mbytes = get_unaligned((u32 *)&d[0x1C]);
> 
> Then I can use 32-bit throughout this and patch 5.

Note that it is possible to store MB values (up to 16 MB) using kB as
the unit. The specification allows for it, and a few systems use that
option. For example [1], the DMI data of a Supermicro X8STi board looks
like:

Handle 0x0038, DMI type 17, 28 bytes
Memory Device
	(...)
	Size: 4096 kB

and it is encoded as 0x9000.

I understand you don't care about such "small" memory modules for
persistent DIMMs, however the API is not specific to these, and it
could be confusing for callers that modules between 1 MB and 16 MB are
sometimes reported as 0 and sometimes not. So I believe that your code
should handle this case.

> Thanks for the review.

You're welcome.

[1] Let's be honest, that was the only instance out of the 180 DMI dumps
I collected. So it's fairly rare. But it did happen.

-- 
Jean Delvare
SUSE L3 Support

WARNING: multiple messages have this Message-ID (diff)
From: Jean Delvare <jdelvare@suse.de>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-nvdimm@lists.01.org, Aristeu Rozanski <aris@redhat.com>,
	"Rafael J. Wysocki  <rjw@rjwysocki.net>,
	linux-acpi@vger.kernel.org, Qiuxu Zhuo" <qiuxu.zhuo@intel.com>,
	Borislav Petkov <bp@alien8.de>, Lv Zheng <lv.zheng@intel.com>,
	Borislav Petkov <bp@suse.de>, Len Brown <lenb@kernel.org>
Subject: Re: [PATCH 4/5] firmware: dmi: Add function to look up a handle and return DIMM size
Date: Sat, 10 Mar 2018 14:22:17 +0100	[thread overview]
Message-ID: <20180310142217.0054dc35@endymion> (raw)
In-Reply-To: <20180309230357.iz7fx47qywx4ijnj@agluck-desk>

Hi Tony,

On Fri, 9 Mar 2018 15:03:58 -0800, Luck, Tony wrote:
> I got side-tracked reading the standard with the ancient ways
> used to report size back in the day when kilobytes was a
> plausible unit. So I wrote code that covers all the crazy
> cases.  Persistant DIMMs have sizes measured in gigabytes.
> I should stop worrying about "0" vs. "fffffff" and just treat
> the old cases as errors and simplify the code to be:
> 
> 	u32 mbytes;
> 
> 	if (size == 0 || (size & 0x8000))
> 		mbytes = 0;
> 	if (size != 0x7fff)

"else" missing.

> 		mbytes = size;
> 	else
> 		mbytes = get_unaligned((u32 *)&d[0x1C]);
> 
> Then I can use 32-bit throughout this and patch 5.

Note that it is possible to store MB values (up to 16 MB) using kB as
the unit. The specification allows for it, and a few systems use that
option. For example [1], the DMI data of a Supermicro X8STi board looks
like:

Handle 0x0038, DMI type 17, 28 bytes
Memory Device
	(...)
	Size: 4096 kB

and it is encoded as 0x9000.

I understand you don't care about such "small" memory modules for
persistent DIMMs, however the API is not specific to these, and it
could be confusing for callers that modules between 1 MB and 16 MB are
sometimes reported as 0 and sometimes not. So I believe that your code
should handle this case.

> Thanks for the review.

You're welcome.

[1] Let's be honest, that was the only instance out of the 180 DMI dumps
I collected. So it's fairly rare. But it did happen.

-- 
Jean Delvare
SUSE L3 Support
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

  reply	other threads:[~2018-03-10 13:22 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-22 19:58 [PATCH 0/5] Teach EDAC about non-volatile DIMMs and add partial support to skx_edac Tony Luck
2018-02-22 19:58 ` Tony Luck
     [not found] ` <20180222195811.27237-1-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-02-22 19:58   ` [PATCH 1/5] EDAC: Drop duplicated array of strings for memory type names Tony Luck
2018-02-22 19:58     ` Tony Luck
2018-02-22 19:58   ` [PATCH 2/5] edac: Add new memory type for non-volatile DIMMs Tony Luck
2018-02-22 19:58     ` Tony Luck
2018-02-22 19:58   ` [PATCH 3/5] acpi, nfit: Add function to look up nvdimm device and provide SMBIOS handle Tony Luck
2018-02-22 19:58     ` Tony Luck
     [not found]     ` <20180222195811.27237-4-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-02-28 17:36       ` Ross Zwisler
2018-02-28 17:36         ` Ross Zwisler
     [not found]         ` <20180228173621.GA12883-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-02-28 18:48           ` Borislav Petkov
2018-02-28 18:48             ` Borislav Petkov
2018-02-22 19:58   ` [PATCH 4/5] firmware: dmi: Add function to look up a handle and return DIMM size Tony Luck
2018-02-22 19:58     ` Tony Luck
     [not found]     ` <20180222195811.27237-5-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-03-09 10:20       ` Jean Delvare
2018-03-09 10:20         ` Jean Delvare
2018-03-09 23:03         ` Luck, Tony
2018-03-09 23:03           ` Luck, Tony
2018-03-10 13:22           ` Jean Delvare [this message]
2018-03-10 13:22             ` Jean Delvare
2018-03-12 16:46             ` Luck, Tony
2018-03-12 16:46               ` Luck, Tony
2018-02-22 19:58   ` [PATCH 5/5] EDAC, skx_edac: Detect non-volatile DIMMs Tony Luck
2018-02-22 19:58     ` Tony Luck
     [not found]     ` <20180222195811.27237-6-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-03-09 10:38       ` Jean Delvare
2018-03-09 10:38         ` Jean Delvare
2018-02-28 13:04   ` [PATCH 0/5] Teach EDAC about non-volatile DIMMs and add partial support to skx_edac Borislav Petkov
2018-02-28 13:04     ` Borislav Petkov
     [not found]     ` <20180228130410.GC3769-fF5Pk5pvG8Y@public.gmane.org>
2018-02-28 13:59       ` Dan Williams
2018-02-28 13:59         ` Dan Williams
     [not found]         ` <CAPcyv4iHr9nUAS0SiFeqqDkU8NXZ_x=rkD3YS010Dy-nbHJXmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-03-12 18:24           ` [PATCH 0/5 V3] " Tony Luck
2018-03-12 18:24             ` Tony Luck
     [not found]             ` <20180312182430.10335-1-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-03-12 18:24               ` [PATCH 1/5] EDAC: Drop duplicated array of strings for memory type names Tony Luck
2018-03-12 18:24                 ` Tony Luck
2018-03-12 18:24               ` [PATCH 2/5] edac: Add new memory type for non-volatile DIMMs Tony Luck
2018-03-12 18:24                 ` Tony Luck
2018-03-12 18:24               ` [PATCH 3/5] acpi, nfit: Add function to look up nvdimm device and provide SMBIOS handle Tony Luck
2018-03-12 18:24                 ` Tony Luck
2018-03-12 18:24               ` [PATCH 4/5] firmware: dmi: Add function to look up a handle and return DIMM size Tony Luck
2018-03-12 18:24                 ` Tony Luck
     [not found]                 ` <20180312182430.10335-5-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-03-13  9:43                   ` Jean Delvare
2018-03-13  9:43                     ` Jean Delvare
2018-03-12 18:24               ` [PATCH 5/5] EDAC, skx_edac: Detect non-volatile DIMMs Tony Luck
2018-03-12 18:24                 ` Tony Luck
     [not found]                 ` <20180312182430.10335-6-tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-03-13  9:59                   ` Jean Delvare
2018-03-13  9:59                     ` Jean Delvare
2018-03-13 15:59                     ` Luck, Tony
2018-03-13 15:59                       ` Luck, Tony
2018-03-13 16:16                       ` Jean Delvare
2018-03-13 16:16                         ` Jean Delvare
2018-03-14 12:00                       ` Borislav Petkov
2018-03-14 12:00                         ` Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180310142217.0054dc35@endymion \
    --to=jdelvare-l3a5bk7wagm@public.gmane.org \
    --cc=aris-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org \
    --cc=bp-l3A5Bk7waGM@public.gmane.org \
    --cc=lenb-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
    --cc=lv.zheng-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=qiuxu.zhuo-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
    --cc=tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.