[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7e5faa39-376e-2c77-3891-9aac9092524a@linux.intel.com>
Date: Fri, 7 Sep 2018 09:57:38 +0800
From: Lu Baolu <baolu.lu@...ux.intel.com>
To: Jacob Pan <jacob.jun.pan@...el.com>
Cc: baolu.lu@...ux.intel.com, "Tian, Kevin" <kevin.tian@...el.com>,
Joerg Roedel <joro@...tes.org>,
David Woodhouse <dwmw2@...radead.org>,
"Raj, Ashok" <ashok.raj@...el.com>,
"Kumar, Sanjay K" <sanjay.k.kumar@...el.com>,
"Liu, Yi L" <yi.l.liu@...el.com>, "Sun, Yi Y" <yi.y.sun@...el.com>,
"peterx@...hat.com" <peterx@...hat.com>,
Jean-Philippe Brucker <jean-philippe.brucker@....com>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Jacob Pan <jacob.jun.pan@...ux.intel.com>
Subject: Re: [PATCH v2 02/12] iommu/vt-d: Manage scalalble mode PASID tables
Hi,
On 09/07/2018 07:43 AM, Jacob Pan wrote:
> On Thu, 6 Sep 2018 10:46:03 +0800
> Lu Baolu <baolu.lu@...ux.intel.com> wrote:
>
>>>> @@ -224,7 +271,14 @@ struct pasid_entry
>>>> *intel_pasid_get_entry(struct device *dev, int pasid)
>>>> */
>>>> static inline void pasid_clear_entry(struct pasid_entry *pe)
>>>> {
>>>> - WRITE_ONCE(pe->val, 0);
>>>> + WRITE_ONCE(pe->val[0], 0);
>>>> + WRITE_ONCE(pe->val[1], 0);
>>>> + WRITE_ONCE(pe->val[2], 0);
>>>> + WRITE_ONCE(pe->val[3], 0);
>>>> + WRITE_ONCE(pe->val[4], 0);
>>>> + WRITE_ONCE(pe->val[5], 0);
>>>> + WRITE_ONCE(pe->val[6], 0);
>>>> + WRITE_ONCE(pe->val[7], 0);
>>>
>>> memset?
>>
>> The order is important here. Otherwise, the PRESENT bit of this pasid
>> entry might still set while other fields contains invalid values.
>
> WRITE_ONCE/READ_ONCE will switch to __builtin_memcpy() in if the size
> exceeds word size, ie. 64bit in this case. I don;t think compiler will
> reorder built-in function. Beside, we only need to clear present and
> FDP bit, right?
Clear present and FDP bit is enough for hardare. But from software point
of view, it's better to clear all bits with 0.
Best regards,
Lu Baolu
Powered by blists - more mailing lists