On Mon, Mar 7, 2016 at 9:56 AM, Toshi Kani <toshi.kani(a)hpe.com> wrote:
On Fri, 2016-03-04 at 18:23 -0800, Dan Williams wrote:
> On Fri, Mar 4, 2016 at 6:48 PM, Toshi Kani <toshi.kani(a)hpe.com> wrote:
> As far as I can see
> all we do is ask firmware implementations to respect Linux section
> boundaries and otherwise not change alignments.
In addition to the requirement that pmem range alignment may not change,
the code also requires a regular memory range does not change to intersect
with a pmem section later. This seems fragile to me since guest config may
vary / change as I mentioned above.
So, shouldn't the driver fails to attach when the range is not aligned by
the section size? Since we need to place a requirement to firmware anyway,
we can simply state that it must be aligned by 128MiB (at least) on x86.
Then, memory and pmem physical layouts can be changed as long as this
requirement is met.
We can state that it must be aligned, but without a hard specification
I don't see how we can guarantee it. We will fail the driver load
with a warning if our alignment fixups end up getting invalidated by a
later configuration change, but in the meantime we cover the gap of a
BIOS that has generated a problematic configuration.