Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-17 Thread Roger Pau Monné
On Mon, Dec 17, 2018 at 09:47:30AM -0700, Jan Beulich wrote: > >>> On 17.12.18 at 16:42, wrote: > > On Fri, Dec 14, 2018 at 04:52:00AM -0700, Jan Beulich wrote: > >> >>> On 14.12.18 at 12:45, wrote: > >> > On Fri, Dec 14, 2018 at 03:45:21AM -0700, Jan Beulich wrote: > >> >> >>> On 14.12.18 at 11:

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-17 Thread Jan Beulich
>>> On 17.12.18 at 16:42, wrote: > On Fri, Dec 14, 2018 at 04:52:00AM -0700, Jan Beulich wrote: >> >>> On 14.12.18 at 12:45, wrote: >> > On Fri, Dec 14, 2018 at 03:45:21AM -0700, Jan Beulich wrote: >> >> >>> On 14.12.18 at 11:03, wrote: >> >> > I expect the interdomain locking as a result of usi

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-17 Thread Roger Pau Monné
On Fri, Dec 14, 2018 at 04:52:00AM -0700, Jan Beulich wrote: > >>> On 14.12.18 at 12:45, wrote: > > On Fri, Dec 14, 2018 at 03:45:21AM -0700, Jan Beulich wrote: > >> >>> On 14.12.18 at 11:03, wrote: > >> > I expect the interdomain locking as a result of using a paging caller > >> > domain is goin

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-14 Thread Jan Beulich
>>> On 14.12.18 at 12:45, wrote: > On Fri, Dec 14, 2018 at 03:45:21AM -0700, Jan Beulich wrote: >> >>> On 14.12.18 at 11:03, wrote: >> > I expect the interdomain locking as a result of using a paging caller >> > domain is going to be restricted to the p2m lock of the caller domain, >> > as a resu

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-14 Thread Roger Pau Monné
On Fri, Dec 14, 2018 at 03:45:21AM -0700, Jan Beulich wrote: > >>> On 14.12.18 at 11:03, wrote: > > I expect the interdomain locking as a result of using a paging caller > > domain is going to be restricted to the p2m lock of the caller domain, > > as a result of the usage of copy to/from helpers.

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-14 Thread Jan Beulich
>>> On 14.12.18 at 11:03, wrote: > I expect the interdomain locking as a result of using a paging caller > domain is going to be restricted to the p2m lock of the caller domain, > as a result of the usage of copy to/from helpers. > > Maybe the less intrusive change would be to just allow locking

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-14 Thread Roger Pau Monné
On Thu, Dec 13, 2018 at 08:53:22AM -0700, Jan Beulich wrote: > >>> On 13.12.18 at 16:34, wrote: > > On Thu, Dec 13, 2018 at 07:52:16AM -0700, Jan Beulich wrote: > >> >>> On 13.12.18 at 15:14, wrote: > >> > On Thu, Dec 13, 2018 at 05:51:51AM -0700, Jan Beulich wrote: > >> >> >>> On 13.12.18 at 12:

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-13 Thread Jan Beulich
>>> On 13.12.18 at 16:34, wrote: > On Thu, Dec 13, 2018 at 07:52:16AM -0700, Jan Beulich wrote: >> >>> On 13.12.18 at 15:14, wrote: >> > On Thu, Dec 13, 2018 at 05:51:51AM -0700, Jan Beulich wrote: >> >> >>> On 13.12.18 at 12:39, wrote: >> >> > Well, Just keeping correct order between each domai

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-13 Thread Roger Pau Monné
On Thu, Dec 13, 2018 at 07:52:16AM -0700, Jan Beulich wrote: > >>> On 13.12.18 at 15:14, wrote: > > On Thu, Dec 13, 2018 at 05:51:51AM -0700, Jan Beulich wrote: > >> >>> On 13.12.18 at 12:39, wrote: > >> > Well, Just keeping correct order between each domain locks should be > >> > enough? > >> >

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-13 Thread Jan Beulich
>>> On 13.12.18 at 15:14, wrote: > On Thu, Dec 13, 2018 at 05:51:51AM -0700, Jan Beulich wrote: >> >>> On 13.12.18 at 12:39, wrote: >> > Well, Just keeping correct order between each domain locks should be >> > enough? >> > >> > Ie: exactly the same that Xen currently does but on a per-domain >>

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-13 Thread Roger Pau Monné
On Thu, Dec 13, 2018 at 05:51:51AM -0700, Jan Beulich wrote: > >>> On 13.12.18 at 12:39, wrote: > > On Wed, Dec 12, 2018 at 09:07:14AM -0700, Jan Beulich wrote: > >> >>> On 12.12.18 at 15:54, wrote: > >> > @@ -488,6 +490,16 @@ static int paging_log_dirty_op(struct domain *d, > >> >

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-13 Thread Jan Beulich
>>> On 13.12.18 at 12:39, wrote: > On Wed, Dec 12, 2018 at 09:07:14AM -0700, Jan Beulich wrote: >> >>> On 12.12.18 at 15:54, wrote: >> > @@ -488,6 +490,16 @@ static int paging_log_dirty_op(struct domain *d, >> > bytes = (unsigned int)((sc->pages - pages + 7) >> 3); >> >

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-13 Thread Roger Pau Monné
On Wed, Dec 12, 2018 at 09:07:14AM -0700, Jan Beulich wrote: > >>> On 12.12.18 at 15:54, wrote: > > Fix this by releasing the target paging lock before attempting to > > perform the copy of the dirty bitmap, and then forcing a restart of > > the whole process in case there have been changes to the

Re: [Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-12 Thread Jan Beulich
>>> On 12.12.18 at 15:54, wrote: > Fix this by releasing the target paging lock before attempting to > perform the copy of the dirty bitmap, and then forcing a restart of > the whole process in case there have been changes to the dirty bitmap > tables. I'm afraid it's not that simple: The writer

[Xen-devel] [PATCH] x86: fix paging_log_dirty_op to work with paging guests

2018-12-12 Thread Roger Pau Monne
When the caller of paging_log_dirty_op is a paging mode guest Xen would choke when trying to copy the dirty bitmap to the guest provided buffer because the paging lock of the target is already locked, and trying to lock the paging lock of the caller will cause the mm lock order checks to trigger: