diff mbox series

[for-4.18] x86/mem_sharing: add missing m2p entry when mapping shared_info page

Message ID 20231018080242.1213-1-tamas@tklengyel.com (mailing list archive)
State New, archived
Headers show
Series [for-4.18] x86/mem_sharing: add missing m2p entry when mapping shared_info page | expand

Commit Message

Tamas K Lengyel Oct. 18, 2023, 8:02 a.m. UTC
When mapping in the shared_info page to a fork the m2p entry wasn't set
resulting in the shared_info being reset even when the fork reset was called
with only reset_state and not reset_memory. This results in an extra
unnecessary TLB flush.

Fixes: 1a0000ac775 ("mem_sharing: map shared_info page to same gfn during fork")
Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
---
 xen/arch/x86/mm/mem_sharing.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andrew Cooper Oct. 19, 2023, 11:48 p.m. UTC | #1
On 18/10/2023 9:02 am, Tamas K Lengyel wrote:
> When mapping in the shared_info page to a fork the m2p entry wasn't set
> resulting in the shared_info being reset even when the fork reset was called
> with only reset_state and not reset_memory. This results in an extra
> unnecessary TLB flush.
>
> Fixes: 1a0000ac775 ("mem_sharing: map shared_info page to same gfn during fork")
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> ---
>  xen/arch/x86/mm/mem_sharing.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
> index 94b6b782ef..142258f16a 100644
> --- a/xen/arch/x86/mm/mem_sharing.c
> +++ b/xen/arch/x86/mm/mem_sharing.c
> @@ -1847,6 +1847,8 @@ static int copy_special_pages(struct domain *cd, struct domain *d)
>                                  p2m_ram_rw, p2m->default_access, -1);
>              if ( rc )
>                  return rc;
> +
> +            set_gpfn_from_mfn(mfn_x(new_mfn), gfn_x(old_gfn));
>          }
>      }
>  

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

CC Henry.  This needs a view about a release ack.

Cons: it's been broken since Xen 4.14 and we're very deep into the 4.18
code freeze.

Pros: it's a bug and would clearly qualify for backport, and is in a
niche feature so isn't plausibly going to adversely affect other users.

~Andrew
Henry Wang Oct. 20, 2023, 1:14 a.m. UTC | #2
Hi all,

> On Oct 20, 2023, at 07:48, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> 
> On 18/10/2023 9:02 am, Tamas K Lengyel wrote:
>> When mapping in the shared_info page to a fork the m2p entry wasn't set
>> resulting in the shared_info being reset even when the fork reset was called
>> with only reset_state and not reset_memory. This results in an extra
>> unnecessary TLB flush.
>> 
>> Fixes: 1a0000ac775 ("mem_sharing: map shared_info page to same gfn during fork")
>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>> ---
>> xen/arch/x86/mm/mem_sharing.c | 2 ++
>> 1 file changed, 2 insertions(+)
>> 
>> diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
>> index 94b6b782ef..142258f16a 100644
>> --- a/xen/arch/x86/mm/mem_sharing.c
>> +++ b/xen/arch/x86/mm/mem_sharing.c
>> @@ -1847,6 +1847,8 @@ static int copy_special_pages(struct domain *cd, struct domain *d)
>>                                 p2m_ram_rw, p2m->default_access, -1);
>>             if ( rc )
>>                 return rc;
>> +
>> +            set_gpfn_from_mfn(mfn_x(new_mfn), gfn_x(old_gfn));
>>         }
>>     }
>> 
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> CC Henry.  This needs a view about a release ack.
> 
> Cons: it's been broken since Xen 4.14 and we're very deep into the 4.18
> code freeze.
> 
> Pros: it's a bug and would clearly qualify for backport, and is in a
> niche feature so isn't plausibly going to adversely affect other users.

Given the fact that it will be backported anyway, I had the same discussion with Juergen
in his thread [1]. So if we can bear the risk of delaying merging this patch for a week,
would it be ok to wait for the release and backport this patch to the stable tree? Thanks!

[1] https://lore.kernel.org/xen-devel/83E6DCF6-926C-43A6-94D2-EB3B2C444309@arm.com/

Kind regards,
Henry

> 
> ~Andrew
Andrew Cooper Oct. 20, 2023, 10:57 a.m. UTC | #3
On 20/10/2023 2:14 am, Henry Wang wrote:
> Hi all,
>
>> On Oct 20, 2023, at 07:48, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>
>> On 18/10/2023 9:02 am, Tamas K Lengyel wrote:
>>> When mapping in the shared_info page to a fork the m2p entry wasn't set
>>> resulting in the shared_info being reset even when the fork reset was called
>>> with only reset_state and not reset_memory. This results in an extra
>>> unnecessary TLB flush.
>>>
>>> Fixes: 1a0000ac775 ("mem_sharing: map shared_info page to same gfn during fork")
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>> ---
>>> xen/arch/x86/mm/mem_sharing.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
>>> index 94b6b782ef..142258f16a 100644
>>> --- a/xen/arch/x86/mm/mem_sharing.c
>>> +++ b/xen/arch/x86/mm/mem_sharing.c
>>> @@ -1847,6 +1847,8 @@ static int copy_special_pages(struct domain *cd, struct domain *d)
>>>                                 p2m_ram_rw, p2m->default_access, -1);
>>>             if ( rc )
>>>                 return rc;
>>> +
>>> +            set_gpfn_from_mfn(mfn_x(new_mfn), gfn_x(old_gfn));
>>>         }
>>>     }
>>>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> CC Henry.  This needs a view about a release ack.
>>
>> Cons: it's been broken since Xen 4.14 and we're very deep into the 4.18
>> code freeze.
>>
>> Pros: it's a bug and would clearly qualify for backport, and is in a
>> niche feature so isn't plausibly going to adversely affect other users.
> Given the fact that it will be backported anyway, I had the same discussion with Juergen
> in his thread [1]. So if we can bear the risk of delaying merging this patch for a week,
> would it be ok to wait for the release and backport this patch to the stable tree? Thanks!
>
> [1] https://lore.kernel.org/xen-devel/83E6DCF6-926C-43A6-94D2-EB3B2C444309@arm.com/
>
> Kind regards,
> Henry

That's fine.  I'll pull this into my next branch for when the 4.19 tree
opens.

~Andrew
Tamas K Lengyel Oct. 20, 2023, 12:19 p.m. UTC | #4
On Fri, Oct 20, 2023 at 6:57 AM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> On 20/10/2023 2:14 am, Henry Wang wrote:
> > Hi all,
> >
> >> On Oct 20, 2023, at 07:48, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >>
> >> On 18/10/2023 9:02 am, Tamas K Lengyel wrote:
> >>> When mapping in the shared_info page to a fork the m2p entry wasn't set
> >>> resulting in the shared_info being reset even when the fork reset was called
> >>> with only reset_state and not reset_memory. This results in an extra
> >>> unnecessary TLB flush.
> >>>
> >>> Fixes: 1a0000ac775 ("mem_sharing: map shared_info page to same gfn during fork")
> >>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >>> ---
> >>> xen/arch/x86/mm/mem_sharing.c | 2 ++
> >>> 1 file changed, 2 insertions(+)
> >>>
> >>> diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
> >>> index 94b6b782ef..142258f16a 100644
> >>> --- a/xen/arch/x86/mm/mem_sharing.c
> >>> +++ b/xen/arch/x86/mm/mem_sharing.c
> >>> @@ -1847,6 +1847,8 @@ static int copy_special_pages(struct domain *cd, struct domain *d)
> >>>                                 p2m_ram_rw, p2m->default_access, -1);
> >>>             if ( rc )
> >>>                 return rc;
> >>> +
> >>> +            set_gpfn_from_mfn(mfn_x(new_mfn), gfn_x(old_gfn));
> >>>         }
> >>>     }
> >>>
> >> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >>
> >> CC Henry.  This needs a view about a release ack.
> >>
> >> Cons: it's been broken since Xen 4.14 and we're very deep into the 4.18
> >> code freeze.
> >>
> >> Pros: it's a bug and would clearly qualify for backport, and is in a
> >> niche feature so isn't plausibly going to adversely affect other users.
> > Given the fact that it will be backported anyway, I had the same discussion with Juergen
> > in his thread [1]. So if we can bear the risk of delaying merging this patch for a week,
> > would it be ok to wait for the release and backport this patch to the stable tree? Thanks!
> >
> > [1] https://lore.kernel.org/xen-devel/83E6DCF6-926C-43A6-94D2-EB3B2C444309@arm.com/
> >
> > Kind regards,
> > Henry
>
> That's fine.  I'll pull this into my next branch for when the 4.19 tree
> opens.

Thanks, I agree that backporting is perfectly fine for this one.

Tamas
diff mbox series

Patch

diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 94b6b782ef..142258f16a 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1847,6 +1847,8 @@  static int copy_special_pages(struct domain *cd, struct domain *d)
                                 p2m_ram_rw, p2m->default_access, -1);
             if ( rc )
                 return rc;
+
+            set_gpfn_from_mfn(mfn_x(new_mfn), gfn_x(old_gfn));
         }
     }