Subject: Re: [PATCH v7 24/28] cxl: add region flag for precluding a device memory to be used for dax

From: Jonathan Cameron <[email-masked]>
Date: Tue, 24 Dec 2024 16:02:04 +0000

On Wed, 11 Dec 2024 09:23:10 +0000
Alejandro Lucero Palau <[email-masked]> wrote:

> On 12/11/24 02:31, Edward Cree wrote:
> > On 09/12/2024 18:54, [email-masked] wrote:  
> >> From: Alejandro Lucero <[email-masked]>
> >>
> >> By definition a type2 cxl device will use the host managed memory for
> >> specific functionality, therefore it should not be available to other
> >> uses. However, a dax interface could be just good enough in some cases.
> >>
> >> Add a flag to a cxl region for specifically state to not create a dax
> >> device. Allow a Type2 driver to set that flag at region creation time.
> >>
> >> Signed-off-by: Alejandro Lucero <[email-masked]>
> >> Reviewed-by: Zhi Wang <[email-masked]>
> >> ---
> >>   drivers/cxl/core/region.c | 10 +++++++++-
> >>   drivers/cxl/cxl.h         |  3 +++
> >>   drivers/cxl/cxlmem.h      |  3 ++-
> >>   include/cxl/cxl.h         |  3 ++-
> >>   4 files changed, 16 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> >> index b014f2fab789..b39086356d74 100644
> >> --- a/drivers/cxl/core/region.c
> >> +++ b/drivers/cxl/core/region.c
> >> @@ -3562,7 +3562,8 @@ __construct_new_region(struct cxl_root_decoder *cxlrd,
> >>    * cxl_region driver.
> >>    */
> >>   struct cxl_region *cxl_create_region(struct cxl_root_decoder *cxlrd,
> >> -				     struct cxl_endpoint_decoder *cxled)
> >> +				     struct cxl_endpoint_decoder *cxled,
> >> +				     bool no_dax)  
> > Won't this break bisectability?  sfc won't build as of this commit
> >   because it tries to call cxl_create_region with the old signature.
> > You could do the whole dance of having an interim API during the
> >   conversion, but seems simpler just to reorder the patches so that
> >   the no_dax parameter is added first before the caller is introduced.  
> 
> 
> Oh. That's true. I wonder why the robot did not catch this! I thought it 
> was building things after each patch in a patchset.
That would be fantastically more expensive. There were some talks on 0-day
magic a while back. If I recall correctly it even merges what it thinks are
unrelated trees on basis if the merge is fine, both trees probably are
as well ;)  The whole game of that system is maximum catching of bugs
for minimum compile times!

Jonathan

> 
> I will change the order for properly using this in the sfc driver.
> 
> Thanks!
> 
> 
> 
>