|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] IOREQ server on Arm
Hi Paul, On 09/27/2018 09:38 AM, Paul Durrant wrote: -----Original Message----- From: Julien Grall [mailto:julien.grall@xxxxxxx] Sent: 26 September 2018 22:32 To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>; 'Jan Beulich' <JBeulich@xxxxxxxx> Cc: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Roger Pau Monne <roger.pau@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>; xen- devel <xen-devel@xxxxxxxxxxxxxxxxxxxx> Subject: Re: IOREQ server on Arm Hi Paul, On 09/26/2018 01:01 PM, Paul Durrant wrote:-----Original Message----- From: Jan Beulich [mailto:JBeulich@xxxxxxxx] Sent: 26 September 2018 12:57 To: Paul Durrant <Paul.Durrant@xxxxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx>; Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Roger Pau Monne <roger.pau@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>; xen-devel <xen- devel@xxxxxxxxxxxxxxxxxxxx> Subject: RE: IOREQ server on ArmOn 26.09.18 at 13:02, <Paul.Durrant@xxxxxxxxxx> wrote: I understand that you don't have reference count in the P2M (that's the same on Arm today except for foreign mapping). But I think I can list at least 2 major issues with the design today. Let me give an example based on my understanding.
1. DM requests to map the IOREQ page
a) page allocated (one reference)
b) get reference (will be dropped when the IOREQ server is destroyed)
2. DM requests to map the IOREQ page (second time)
No reference taken
3. DM unmap the IOREQ page
4. DM unmap the IOREQ page
AFAIU, 3. 4. would be done through XENMEM_remove_from_physmap. So no
reference dropped there. While the reference 1.b) will be dropped in
hvm_free_ioreq_mfn. AFAICT 1.a) would be kept until the domain die. This
would result to Xen memory exhaustion in long term. Did I miss anything?
But, I think there are another way for badly written guest to remove the page. It looks like you can use XENMEM_decrease_reservation as the page belongs to the guest. So a reference would be dropped by 3. and 4. While 3. will drop the reference drop by 1.a), 4. may drop the reference from 1.b) and releasing the page for good. Although the page will still be associated with the IOREQ server until it has been effectively destroyed. Did I miss anything in the code? It sounds like resource mapping should be treated the same way as foreign mapping (albeit with a non-foreign domid) such that the reference acquisition occurs at map time. If my understanding is correct then yes it would be much safer to get reference here. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |