From: Segher Boessenkool <segher@kernel.crashing.org>
To: Vaibhav Jain <vaibhav@linux.ibm.com>
Cc: Ira Weiny <ira.weiny@intel.com>,
Santosh Sivaraj <santosh@fossix.org>,
linux-nvdimm@lists.01.org,
"Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>,
linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
"Oliver O'Halloran" <oohall@gmail.com>,
Dan Williams <dan.j.williams@intel.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v10 6/6] powerpc/papr_scm: Implement support for PAPR_PDSM_HEALTH
Date: Sat, 6 Jun 2020 13:09:10 -0500 [thread overview]
Message-ID: <20200606180910.GW31009@gate.crashing.org> (raw)
In-Reply-To: <87wo4kfk58.fsf@linux.ibm.com>
On Sat, Jun 06, 2020 at 06:04:11PM +0530, Vaibhav Jain wrote:
> >> + /* update health struct with various flags derived from health bitmap */
> >> + health = (struct nd_papr_pdsm_health) {
> >> + .dimm_unarmed = p->health_bitmap & PAPR_PMEM_UNARMED_MASK,
> >> + .dimm_bad_shutdown = p->health_bitmap & PAPR_PMEM_BAD_SHUTDOWN_MASK,
> >> + .dimm_bad_restore = p->health_bitmap & PAPR_PMEM_BAD_RESTORE_MASK,
> >> + .dimm_encrypted = p->health_bitmap & PAPR_PMEM_ENCRYPTED,
> >> + .dimm_locked = p->health_bitmap & PAPR_PMEM_SCRUBBED_AND_LOCKED,
> >> + .dimm_scrubbed = p->health_bitmap & PAPR_PMEM_SCRUBBED_AND_LOCKED,
> >
> > Are you sure these work? These are not assignments to a bool so I don't think
> > gcc will do what you want here.
> Yeah, somehow this slipped by and didnt show up in my tests. I checked
> the assembly dump and seems GCC was silently skipping initializing these
> fields without making any noise.
It's not "skipping" that, it initialises the field to 0, just like your
code said it should :-)
If you think GCC should warn for this, please open a PR? It is *normal*
for bit-fields to be truncated from what is assigned to it, but maybe we
could warn for it in the 1-bit case (we currently don't seem to, even
when the bit-field type is _Bool).
Thanks,
Segher
WARNING: multiple messages have this Message-ID (diff)
From: Segher Boessenkool <segher@kernel.crashing.org>
To: Vaibhav Jain <vaibhav@linux.ibm.com>
Cc: Santosh Sivaraj <santosh@fossix.org>,
linux-nvdimm@lists.01.org,
"Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
Oliver O'Halloran <oohall@gmail.com>,
Dan Williams <dan.j.williams@intel.com>,
Ira Weiny <ira.weiny@intel.com>
Subject: Re: [PATCH v10 6/6] powerpc/papr_scm: Implement support for PAPR_PDSM_HEALTH
Date: Sat, 6 Jun 2020 13:09:10 -0500 [thread overview]
Message-ID: <20200606180910.GW31009@gate.crashing.org> (raw)
In-Reply-To: <87wo4kfk58.fsf@linux.ibm.com>
On Sat, Jun 06, 2020 at 06:04:11PM +0530, Vaibhav Jain wrote:
> >> + /* update health struct with various flags derived from health bitmap */
> >> + health = (struct nd_papr_pdsm_health) {
> >> + .dimm_unarmed = p->health_bitmap & PAPR_PMEM_UNARMED_MASK,
> >> + .dimm_bad_shutdown = p->health_bitmap & PAPR_PMEM_BAD_SHUTDOWN_MASK,
> >> + .dimm_bad_restore = p->health_bitmap & PAPR_PMEM_BAD_RESTORE_MASK,
> >> + .dimm_encrypted = p->health_bitmap & PAPR_PMEM_ENCRYPTED,
> >> + .dimm_locked = p->health_bitmap & PAPR_PMEM_SCRUBBED_AND_LOCKED,
> >> + .dimm_scrubbed = p->health_bitmap & PAPR_PMEM_SCRUBBED_AND_LOCKED,
> >
> > Are you sure these work? These are not assignments to a bool so I don't think
> > gcc will do what you want here.
> Yeah, somehow this slipped by and didnt show up in my tests. I checked
> the assembly dump and seems GCC was silently skipping initializing these
> fields without making any noise.
It's not "skipping" that, it initialises the field to 0, just like your
code said it should :-)
If you think GCC should warn for this, please open a PR? It is *normal*
for bit-fields to be truncated from what is assigned to it, but maybe we
could warn for it in the 1-bit case (we currently don't seem to, even
when the bit-field type is _Bool).
Thanks,
Segher
next prev parent reply other threads:[~2020-06-06 18:10 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-04 23:41 [PATCH v10 0/6] powerpc/papr_scm: Add support for reporting nvdimm health Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 1/6] powerpc: Document details on H_SCM_HEALTH hcall Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 2/6] seq_buf: Export seq_buf_printf Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 3/6] powerpc/papr_scm: Fetch nvdimm health information from PHYP Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 4/6] powerpc/papr_scm: Improve error logging and handling papr_scm_ndctl() Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-05 17:13 ` Ira Weiny
2020-06-05 17:13 ` Ira Weiny
2020-06-05 17:13 ` Ira Weiny
2020-06-05 19:49 ` Dan Williams
2020-06-05 19:49 ` Dan Williams
2020-06-05 19:49 ` Dan Williams
2020-06-06 11:21 ` Vaibhav Jain
2020-06-06 11:21 ` Vaibhav Jain
2020-06-06 11:21 ` Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 5/6] ndctl/papr_scm,uapi: Add support for PAPR nvdimm specific methods Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 5/6] ndctl/papr_scm, uapi: " Vaibhav Jain
2020-06-04 23:41 ` [PATCH v10 5/6] ndctl/papr_scm,uapi: " Vaibhav Jain
2020-06-05 19:49 ` Ira Weiny
2020-06-05 19:49 ` [PATCH v10 5/6] ndctl/papr_scm, uapi: " Ira Weiny
2020-06-05 19:49 ` [PATCH v10 5/6] ndctl/papr_scm,uapi: " Ira Weiny
2020-06-05 20:58 ` Dan Williams
2020-06-05 20:58 ` [PATCH v10 5/6] ndctl/papr_scm, uapi: " Dan Williams
2020-06-05 20:58 ` [PATCH v10 5/6] ndctl/papr_scm,uapi: " Dan Williams
2020-06-04 23:41 ` [PATCH v10 6/6] powerpc/papr_scm: Implement support for PAPR_PDSM_HEALTH Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-04 23:41 ` Vaibhav Jain
2020-06-05 18:36 ` Ira Weiny
2020-06-05 18:36 ` Ira Weiny
2020-06-05 18:36 ` Ira Weiny
2020-06-06 12:34 ` Vaibhav Jain
2020-06-06 12:34 ` Vaibhav Jain
2020-06-06 12:34 ` Vaibhav Jain
2020-06-06 18:09 ` Segher Boessenkool [this message]
2020-06-06 18:09 ` Segher Boessenkool
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=20200606180910.GW31009@gate.crashing.org \
--to=segher@kernel.crashing.org \
--cc=aneesh.kumar@linux.ibm.com \
--cc=dan.j.williams@intel.com \
--cc=ira.weiny@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvdimm@lists.01.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=oohall@gmail.com \
--cc=rostedt@goodmis.org \
--cc=santosh@fossix.org \
--cc=vaibhav@linux.ibm.com \
/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.