On Wed, 2020-12-16 at 11:39 +0000, Joao Martins wrote:
On 7/16/20 7:46 PM, Joao Martins wrote:
> Hey,
>
> This series builds on top of this one[0] and does the following improvements
> to the Soft-Reserved subdivision:
>
> 1) Support for {create,reconfigure}-device for selecting @align (hugepage size).
> Here we add a '-a|--align 4K|2M|1G' option to the existing commands;
>
> 2) Listing improvements for device alignment and mappings;
> Note: Perhaps it is better to hide the mappings by default, and only
> print with -v|--verbose. This would align with ndctl, as the mappings
> info can be quite large.
>
> 3) Allow creating devices from selecting ranges. This allows to keep the
> same GPA->HPA mapping as before we kexec the hypervisor with running guests:
>
> daxctl list -d dax0.1 > /var/log/dax0.1.json
> kexec -d -l bzImage
> systemctl kexec
> daxctl create -u --restore /var/log/dax0.1.json
>
> The JSON was what I though it would be easier for an user, given that it is
> the data format daxctl outputs. Alternatives could be adding multiple:
> --mapping <pgoff>:<start>-<end>
>
> But that could end up in a gigantic line and a little more
> unmanageable I think.
>
> This series requires this series[0] on top of Dan's patches[1]:
>
> [0]
https://lore.kernel.org/linux-nvdimm/20200716172913.19658-1-joao.m.martin...
> [1]
https://lore.kernel.org/linux-nvdimm/159457116473.754248.7879464730875147...
>
> The only TODO here is docs and improving tests to validate mappings, and test
> the restore path.
>
> Suggestions/comments are welcome.
>
There's a couple of issues in this series regarding daxctl-reconfigure options and
breakage of ndctl with kernels (<5.10) that do not supply a device @align upon
testing
with NVDIMMs. Plus it is missing daxctl-create.sh unit test for @align.
I will fix those and respin, and probably take out the last patch as it's more
RFC-ish and
in need of feedback.
Sounds good. Any objections to releasing v70 with the initial support,
and then adding this series on for the next one? I'm thinking I'll do a
much quicker v72 release say in early January with this and anything
else that missed v71.
Joao
> Joao Martins (8):
> daxctl: add daxctl_dev_{get,set}_align()
> util/json: Print device align
> daxctl: add align support in reconfigure-device
> daxctl: add align support in create-device
> libdaxctl: add mapping iterator APIs
> daxctl: include mappings when listing
> libdaxctl: add daxctl_dev_set_mapping()
> daxctl: Allow restore devices from JSON metadata
>
> daxctl/device.c | 154 +++++++++++++++++++++++++++++++++++++++--
> daxctl/lib/libdaxctl-private.h | 9 +++
> daxctl/lib/libdaxctl.c | 152 +++++++++++++++++++++++++++++++++++++++-
> daxctl/lib/libdaxctl.sym | 9 +++
> daxctl/libdaxctl.h | 16 +++++
> util/json.c | 63 ++++++++++++++++-
> util/json.h | 3 +
> 7 files changed, 396 insertions(+), 10 deletions(-)
>