[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dy
From: |
Gregory Price |
Subject: |
Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents |
Date: |
Fri, 5 Apr 2024 14:09:23 -0400 |
On Fri, Apr 05, 2024 at 06:44:52PM +0100, Jonathan Cameron wrote:
> On Fri, 5 Apr 2024 12:07:45 -0400
> Gregory Price <gregory.price@memverge.com> wrote:
>
> > 3. (C) Upon Device receiving Release Dynamic Capacity Request
> > a. check for a pending release request. If exists, error.
>
> Not sure that's necessary - can queue as long as the head
> can track if the bits are in a pending release state.
>
Yeah probably it's fine to just queue the event and everything
downstream just handles it.
> > b. check that the bits in the MHD bitmap are actually set
> Good.
> >
> > function: qmp_cxl_process_dynamic_capacity
> >
> > 4. (D) Upon Device receiving Release Dynamic Capacity Response
> > a. clear the bits in the mhd bitmap
> > b. remove the pending request from the pending list
> >
> > function: cmd_dcd_release_dyn_cap
> >
> > Something to note: The MHD bitmap is essentially the same as the
> > existing DCD extent bitmap - except that it is located in a shared
> > region of memory (mmap file, shm, whatever - pick one).
>
> I think you will ideally also have a per head one to track head access
> to the things offered by the mhd.
>
Generally I try not to duplicate state, reduces consistency problems.
You do still need a shared memory state and a per-head state to capture
per-head data, but the allocation bitmap is really device-global state.
Either way you have a race condition when checking the bitmap during a
memory access in the process of adding/releasing capacity - but that's
more an indication of bad host behavior than it is of a bug in the
implementatio of the emulated device. Probably we don't need to
read-lock the bitmap (for access validation), only write-lock.
My preference, for what it's worth, would be to have a single bitmap
and have it be anonymous-memory for Single-head and file-backed for
for Multi-head. I'll have to work out the locking mechanism.
~Gregory
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, Jonathan Cameron, 2024/04/05
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, fan, 2024/04/09
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, Jonathan Cameron, 2024/04/10
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, fan, 2024/04/15
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, Jonathan Cameron, 2024/04/16
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, fan, 2024/04/16
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, Jonathan Cameron, 2024/04/17
- Re: [PATCH v6 09/12] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents, Gregory Price, 2024/04/16