mbox series

[Qemu,0/9] Enabling DCD emulation support in Qemu

Message ID SG2PR06MB33976BB3F9C47CBE08F02D09B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com
Headers show
Series Enabling DCD emulation support in Qemu | expand

Message

nifan@outlook.com July 20, 2023, 8:36 p.m. UTC
From: Fan Ni <nifan@outlook.com>

The patch series provides dynamic capacity device (DCD) emulation in Qemu.
More specifically, it provides the following functionalities:
1. Extended type3 memory device to support DC regions and extents.
2. Implemented DCD related mailbox command support in CXL r3.0: 8.2.9.8.9.
3. ADD QMP interfaces for adding and releasing DC extents to simulate FM
functions for DCD described in cxl r3.0: 7.6.7.6.5 and 7.6.7.6.6.
4. Add new ct3d properties for DCD devices (host backend, number of dc
regions, etc.)
5. Add read/write support from/to DC regions of the device.
6. Add mechanism to validate accessed to DC region address space.

A more detailed description can be found from the previously posted RFC[1].

Compared to the previously posted RFC[1], following changes have been made:
1. Rebased the code on top of Jonathan's branch
https://gitlab.com/jic23/qemu/-/tree/cxl-2023-05-25.
2. Extracted the rename of mem_size to a separated patch.(Jonathan)
3. Reordered the patch series to improve its readability.(Jonathan)
4. Split the validation of accesses to DC region address space as a separate
patch.
5. Redesigned the QMP interfaces for adding and releasing DC extents to make
them easier to understand and act like existing QMP interfaces (like the
interface for cxl-inject-uncorrectable-errors). (Jonathan)
6. Updated dvsec range register setting to support DCD devices without static
capacity.
7. Fixed other issues mentioned in the comments (Jonathan&Nathan Fontenot).
8. Fixed the format issues and checked with checkpatch.pl under qemu code dir.


The code is tested with the DCD patch series at the kernel side[2]. The test
is similar to those mentioned in the cover letter of [1].


[1]: https://lore.kernel.org/all/20230511175609.2091136-1-fan.ni@samsung.com/
[2]: https://lore.kernel.org/linux-cxl/649da378c28a3_968bb29420@iweiny-mobl.notmuch/T/#t

Fan Ni (9):
  hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output
    payload of identify memory device command
  hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative
    and mailbox command support
  include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for
    type3 memory devices
  hw/mem/cxl_type3: Add support to create DC regions to type3 memory
    devices
  hw/mem/cxl_type3: Add host backend and address space handling for DC
    regions
  hw/mem/cxl_type3: Add DC extent list representative and get DC extent
    list mailbox support
  hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release
    dynamic capacity response
  hw/cxl/events: Add qmp interfaces to add/release dynamic capacity
    extents
  hw/mem/cxl_type3: Add dpa range validation for accesses to dc regions

 hw/cxl/cxl-mailbox-utils.c  | 421 +++++++++++++++++++++++++++-
 hw/mem/cxl_type3.c          | 539 +++++++++++++++++++++++++++++++++---
 hw/mem/cxl_type3_stubs.c    |   6 +
 include/hw/cxl/cxl_device.h |  49 +++-
 include/hw/cxl/cxl_events.h |  16 ++
 qapi/cxl.json               |  49 ++++
 6 files changed, 1034 insertions(+), 46 deletions(-)

Comments

Ira Weiny July 23, 2023, 4:52 a.m. UTC | #1
nifan@ wrote:
> From: Fan Ni <nifan@outlook.com>
> 
> The patch series provides dynamic capacity device (DCD) emulation in Qemu.

I don't the patches on the list.

https://lore.kernel.org/all/SG2PR06MB33976BB3F9C47CBE08F02D09B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com/

Did they get sent?

Ira

> More specifically, it provides the following functionalities:
> 1. Extended type3 memory device to support DC regions and extents.
> 2. Implemented DCD related mailbox command support in CXL r3.0: 8.2.9.8.9.
> 3. ADD QMP interfaces for adding and releasing DC extents to simulate FM
> functions for DCD described in cxl r3.0: 7.6.7.6.5 and 7.6.7.6.6.
> 4. Add new ct3d properties for DCD devices (host backend, number of dc
> regions, etc.)
> 5. Add read/write support from/to DC regions of the device.
> 6. Add mechanism to validate accessed to DC region address space.
> 
> A more detailed description can be found from the previously posted RFC[1].
> 
> Compared to the previously posted RFC[1], following changes have been made:
> 1. Rebased the code on top of Jonathan's branch
> https://gitlab.com/jic23/qemu/-/tree/cxl-2023-05-25.
> 2. Extracted the rename of mem_size to a separated patch.(Jonathan)
> 3. Reordered the patch series to improve its readability.(Jonathan)
> 4. Split the validation of accesses to DC region address space as a separate
> patch.
> 5. Redesigned the QMP interfaces for adding and releasing DC extents to make
> them easier to understand and act like existing QMP interfaces (like the
> interface for cxl-inject-uncorrectable-errors). (Jonathan)
> 6. Updated dvsec range register setting to support DCD devices without static
> capacity.
> 7. Fixed other issues mentioned in the comments (Jonathan&Nathan Fontenot).
> 8. Fixed the format issues and checked with checkpatch.pl under qemu code dir.
> 
> 
> The code is tested with the DCD patch series at the kernel side[2]. The test
> is similar to those mentioned in the cover letter of [1].
> 
> 
> [1]: https://lore.kernel.org/all/20230511175609.2091136-1-fan.ni@samsung.com/
> [2]: https://lore.kernel.org/linux-cxl/649da378c28a3_968bb29420@iweiny-mobl.notmuch/T/#t
> 
> Fan Ni (9):
>   hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output
>     payload of identify memory device command
>   hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative
>     and mailbox command support
>   include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for
>     type3 memory devices
>   hw/mem/cxl_type3: Add support to create DC regions to type3 memory
>     devices
>   hw/mem/cxl_type3: Add host backend and address space handling for DC
>     regions
>   hw/mem/cxl_type3: Add DC extent list representative and get DC extent
>     list mailbox support
>   hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release
>     dynamic capacity response
>   hw/cxl/events: Add qmp interfaces to add/release dynamic capacity
>     extents
>   hw/mem/cxl_type3: Add dpa range validation for accesses to dc regions
> 
>  hw/cxl/cxl-mailbox-utils.c  | 421 +++++++++++++++++++++++++++-
>  hw/mem/cxl_type3.c          | 539 +++++++++++++++++++++++++++++++++---
>  hw/mem/cxl_type3_stubs.c    |   6 +
>  include/hw/cxl/cxl_device.h |  49 +++-
>  include/hw/cxl/cxl_events.h |  16 ++
>  qapi/cxl.json               |  49 ++++
>  6 files changed, 1034 insertions(+), 46 deletions(-)
> 
> -- 
> 2.39.2
>
Ira Weiny July 23, 2023, 4:57 a.m. UTC | #2
nifan@ wrote:
> From: Fan Ni <nifan@outlook.com>
> 
> The patch series provides dynamic capacity device (DCD) emulation in Qemu.
> More specifically, it provides the following functionalities:
> 1. Extended type3 memory device to support DC regions and extents.
> 2. Implemented DCD related mailbox command support in CXL r3.0: 8.2.9.8.9.
> 3. ADD QMP interfaces for adding and releasing DC extents to simulate FM
> functions for DCD described in cxl r3.0: 7.6.7.6.5 and 7.6.7.6.6.
> 4. Add new ct3d properties for DCD devices (host backend, number of dc
> regions, etc.)
> 5. Add read/write support from/to DC regions of the device.
> 6. Add mechanism to validate accessed to DC region address space.
> 

Sorry I see them in this other thread now.

https://lore.kernel.org/all/SG2PR06MB3397F3E74A083607F7492FA4B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com/

Thanks,
Ira

> A more detailed description can be found from the previously posted RFC[1].
> 
> Compared to the previously posted RFC[1], following changes have been made:
> 1. Rebased the code on top of Jonathan's branch
> https://gitlab.com/jic23/qemu/-/tree/cxl-2023-05-25.
> 2. Extracted the rename of mem_size to a separated patch.(Jonathan)
> 3. Reordered the patch series to improve its readability.(Jonathan)
> 4. Split the validation of accesses to DC region address space as a separate
> patch.
> 5. Redesigned the QMP interfaces for adding and releasing DC extents to make
> them easier to understand and act like existing QMP interfaces (like the
> interface for cxl-inject-uncorrectable-errors). (Jonathan)
> 6. Updated dvsec range register setting to support DCD devices without static
> capacity.
> 7. Fixed other issues mentioned in the comments (Jonathan&Nathan Fontenot).
> 8. Fixed the format issues and checked with checkpatch.pl under qemu code dir.
> 
> 
> The code is tested with the DCD patch series at the kernel side[2]. The test
> is similar to those mentioned in the cover letter of [1].
> 
> 
> [1]: https://lore.kernel.org/all/20230511175609.2091136-1-fan.ni@samsung.com/
> [2]: https://lore.kernel.org/linux-cxl/649da378c28a3_968bb29420@iweiny-mobl.notmuch/T/#t
> 
> Fan Ni (9):
>   hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output
>     payload of identify memory device command
>   hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative
>     and mailbox command support
>   include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for
>     type3 memory devices
>   hw/mem/cxl_type3: Add support to create DC regions to type3 memory
>     devices
>   hw/mem/cxl_type3: Add host backend and address space handling for DC
>     regions
>   hw/mem/cxl_type3: Add DC extent list representative and get DC extent
>     list mailbox support
>   hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release
>     dynamic capacity response
>   hw/cxl/events: Add qmp interfaces to add/release dynamic capacity
>     extents
>   hw/mem/cxl_type3: Add dpa range validation for accesses to dc regions
> 
>  hw/cxl/cxl-mailbox-utils.c  | 421 +++++++++++++++++++++++++++-
>  hw/mem/cxl_type3.c          | 539 +++++++++++++++++++++++++++++++++---
>  hw/mem/cxl_type3_stubs.c    |   6 +
>  include/hw/cxl/cxl_device.h |  49 +++-
>  include/hw/cxl/cxl_events.h |  16 ++
>  qapi/cxl.json               |  49 ++++
>  6 files changed, 1034 insertions(+), 46 deletions(-)
> 
> -- 
> 2.39.2
>
Jonathan Cameron July 24, 2023, 8:57 a.m. UTC | #3
On Sat, 22 Jul 2023 21:52:06 -0700
Ira Weiny <ira.weiny@intel.com> wrote:

> nifan@ wrote:
> > From: Fan Ni <nifan@outlook.com>
> > 
> > The patch series provides dynamic capacity device (DCD) emulation in Qemu.  
> 
> I don't the patches on the list.
> 
> https://lore.kernel.org/all/SG2PR06MB33976BB3F9C47CBE08F02D09B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com/
> 
> Did they get sent?
Something odd going on...
They are in https://lists.nongnu.org/archive/html/qemu-devel/2023-07/msg04105.html
though threading is broken.
Also seems to have made it to qemu-devel on lore
https://lore.kernel.org/all/SG2PR06MB3397F3E74A083607F7492FA4B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com/

Might be a backlog somewhere that will take a while to drain...

Fan, perhaps just resend the lot and make sure the threading works so we can find them more easily.

Jonathan


> 
> Ira
> 
> > More specifically, it provides the following functionalities:
> > 1. Extended type3 memory device to support DC regions and extents.
> > 2. Implemented DCD related mailbox command support in CXL r3.0: 8.2.9.8.9.
> > 3. ADD QMP interfaces for adding and releasing DC extents to simulate FM
> > functions for DCD described in cxl r3.0: 7.6.7.6.5 and 7.6.7.6.6.
> > 4. Add new ct3d properties for DCD devices (host backend, number of dc
> > regions, etc.)
> > 5. Add read/write support from/to DC regions of the device.
> > 6. Add mechanism to validate accessed to DC region address space.
> > 
> > A more detailed description can be found from the previously posted RFC[1].
> > 
> > Compared to the previously posted RFC[1], following changes have been made:
> > 1. Rebased the code on top of Jonathan's branch
> > https://gitlab.com/jic23/qemu/-/tree/cxl-2023-05-25.
> > 2. Extracted the rename of mem_size to a separated patch.(Jonathan)
> > 3. Reordered the patch series to improve its readability.(Jonathan)
> > 4. Split the validation of accesses to DC region address space as a separate
> > patch.
> > 5. Redesigned the QMP interfaces for adding and releasing DC extents to make
> > them easier to understand and act like existing QMP interfaces (like the
> > interface for cxl-inject-uncorrectable-errors). (Jonathan)
> > 6. Updated dvsec range register setting to support DCD devices without static
> > capacity.
> > 7. Fixed other issues mentioned in the comments (Jonathan&Nathan Fontenot).
> > 8. Fixed the format issues and checked with checkpatch.pl under qemu code dir.
> > 
> > 
> > The code is tested with the DCD patch series at the kernel side[2]. The test
> > is similar to those mentioned in the cover letter of [1].
> > 
> > 
> > [1]: https://lore.kernel.org/all/20230511175609.2091136-1-fan.ni@samsung.com/
> > [2]: https://lore.kernel.org/linux-cxl/649da378c28a3_968bb29420@iweiny-mobl.notmuch/T/#t
> > 
> > Fan Ni (9):
> >   hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output
> >     payload of identify memory device command
> >   hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative
> >     and mailbox command support
> >   include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for
> >     type3 memory devices
> >   hw/mem/cxl_type3: Add support to create DC regions to type3 memory
> >     devices
> >   hw/mem/cxl_type3: Add host backend and address space handling for DC
> >     regions
> >   hw/mem/cxl_type3: Add DC extent list representative and get DC extent
> >     list mailbox support
> >   hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release
> >     dynamic capacity response
> >   hw/cxl/events: Add qmp interfaces to add/release dynamic capacity
> >     extents
> >   hw/mem/cxl_type3: Add dpa range validation for accesses to dc regions
> > 
> >  hw/cxl/cxl-mailbox-utils.c  | 421 +++++++++++++++++++++++++++-
> >  hw/mem/cxl_type3.c          | 539 +++++++++++++++++++++++++++++++++---
> >  hw/mem/cxl_type3_stubs.c    |   6 +
> >  include/hw/cxl/cxl_device.h |  49 +++-
> >  include/hw/cxl/cxl_events.h |  16 ++
> >  qapi/cxl.json               |  49 ++++
> >  6 files changed, 1034 insertions(+), 46 deletions(-)
> > 
> > -- 
> > 2.39.2
> >   
> 
> 
>
Fan Ni July 24, 2023, 4:41 p.m. UTC | #4
On Mon, Jul 24, 2023 at 09:57:48AM +0100, Jonathan Cameron wrote:

Hi Ira & Jonathan,

Thanks for helping check. I resend the patch series and now they
look normal now. Although I am still not sure what happened to my
previous sending.

The resend is here:
https://lore.kernel.org/linux-cxl/20230724162313.34196-1-fan.ni@samsung.com/T/#t

Thanks,
Fan



> On Sat, 22 Jul 2023 21:52:06 -0700
> Ira Weiny <ira.weiny@intel.com> wrote:
> 
> > nifan@ wrote:
> > > From: Fan Ni <nifan@outlook.com>
> > > 
> > > The patch series provides dynamic capacity device (DCD) emulation in Qemu.  
> > 
> > I don't the patches on the list.
> > 
> > https://lore.kernel.org/all/SG2PR06MB33976BB3F9C47CBE08F02D09B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com/
> > 
> > Did they get sent?
> Something odd going on...
> They are in https://lists.nongnu.org/archive/html/qemu-devel/2023-07/msg04105.html
> though threading is broken.
> Also seems to have made it to qemu-devel on lore
> https://lore.kernel.org/all/SG2PR06MB3397F3E74A083607F7492FA4B23EA@SG2PR06MB3397.apcprd06.prod.outlook.com/
> 
> Might be a backlog somewhere that will take a while to drain...
> 
> Fan, perhaps just resend the lot and make sure the threading works so we can find them more easily.
> 
> Jonathan
> 
> 
> > 
> > Ira
> > 
> > > More specifically, it provides the following functionalities:
> > > 1. Extended type3 memory device to support DC regions and extents.
> > > 2. Implemented DCD related mailbox command support in CXL r3.0: 8.2.9.8.9.
> > > 3. ADD QMP interfaces for adding and releasing DC extents to simulate FM
> > > functions for DCD described in cxl r3.0: 7.6.7.6.5 and 7.6.7.6.6.
> > > 4. Add new ct3d properties for DCD devices (host backend, number of dc
> > > regions, etc.)
> > > 5. Add read/write support from/to DC regions of the device.
> > > 6. Add mechanism to validate accessed to DC region address space.
> > > 
> > > A more detailed description can be found from the previously posted RFC[1].
> > > 
> > > Compared to the previously posted RFC[1], following changes have been made:
> > > 1. Rebased the code on top of Jonathan's branch
> > > https://gitlab.com/jic23/qemu/-/tree/cxl-2023-05-25.
> > > 2. Extracted the rename of mem_size to a separated patch.(Jonathan)
> > > 3. Reordered the patch series to improve its readability.(Jonathan)
> > > 4. Split the validation of accesses to DC region address space as a separate
> > > patch.
> > > 5. Redesigned the QMP interfaces for adding and releasing DC extents to make
> > > them easier to understand and act like existing QMP interfaces (like the
> > > interface for cxl-inject-uncorrectable-errors). (Jonathan)
> > > 6. Updated dvsec range register setting to support DCD devices without static
> > > capacity.
> > > 7. Fixed other issues mentioned in the comments (Jonathan&Nathan Fontenot).
> > > 8. Fixed the format issues and checked with checkpatch.pl under qemu code dir.
> > > 
> > > 
> > > The code is tested with the DCD patch series at the kernel side[2]. The test
> > > is similar to those mentioned in the cover letter of [1].
> > > 
> > > 
> > > [1]: https://lore.kernel.org/all/20230511175609.2091136-1-fan.ni@samsung.com/
> > > [2]: https://lore.kernel.org/linux-cxl/649da378c28a3_968bb29420@iweiny-mobl.notmuch/T/#t
> > > 
> > > Fan Ni (9):
> > >   hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output
> > >     payload of identify memory device command
> > >   hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative
> > >     and mailbox command support
> > >   include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for
> > >     type3 memory devices
> > >   hw/mem/cxl_type3: Add support to create DC regions to type3 memory
> > >     devices
> > >   hw/mem/cxl_type3: Add host backend and address space handling for DC
> > >     regions
> > >   hw/mem/cxl_type3: Add DC extent list representative and get DC extent
> > >     list mailbox support
> > >   hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release
> > >     dynamic capacity response
> > >   hw/cxl/events: Add qmp interfaces to add/release dynamic capacity
> > >     extents
> > >   hw/mem/cxl_type3: Add dpa range validation for accesses to dc regions
> > > 
> > >  hw/cxl/cxl-mailbox-utils.c  | 421 +++++++++++++++++++++++++++-
> > >  hw/mem/cxl_type3.c          | 539 +++++++++++++++++++++++++++++++++---
> > >  hw/mem/cxl_type3_stubs.c    |   6 +
> > >  include/hw/cxl/cxl_device.h |  49 +++-
> > >  include/hw/cxl/cxl_events.h |  16 ++
> > >  qapi/cxl.json               |  49 ++++
> > >  6 files changed, 1034 insertions(+), 46 deletions(-)
> > > 
> > > -- 
> > > 2.39.2
> > >   
> > 
> > 
> > 
> 
>