|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v12 5/6] x86/ioreq server: Asynchronously reset outstanding p2m_ioreq_server entries.
On 4/7/2017 7:28 PM, Jan Beulich wrote: On 07.04.17 at 12:50, <yu.c.zhang@xxxxxxxxxxxxxxx> wrote:On 4/7/2017 6:28 PM, George Dunlap wrote:On 07/04/17 11:14, Yu Zhang wrote:On 4/7/2017 5:40 PM, Jan Beulich wrote:On 06.04.17 at 17:53, <yu.c.zhang@xxxxxxxxxxxxxxx> wrote: Oh right. Then sth. like: diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c index ecd5ceb..b960a1d 100644 --- a/xen/arch/x86/mm/p2m-ept.c +++ b/xen/arch/x86/mm/p2m-ept.c@@ -542,7 +542,10 @@ static int resolve_misconfig(struct p2m_domain *p2m, unsigned long gfn)
_mfn(e.mfn), 0, &ipat,
e.sa_p2mt ==
p2m_mmio_direct);
e.ipat = ipat;
- if ( e.recalc && p2m_is_changeable(e.sa_p2mt) )
+ if ( e.recalc &&
+ (p2m_check_changeable(e.sa_p2mt) ||
+ (e.sa_p2mt == p2m_ioreq_server &&
+ p2m->ioreq.server == NULL)) )
{
if ( e.sa_p2mt == p2m_ioreq_server )
{
diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c
index 4b2ff9e..1c600b1 100644
--- a/xen/arch/x86/mm/p2m-pt.c
+++ b/xen/arch/x86/mm/p2m-pt.c
@@ -442,7 +442,8 @@ static int do_recalc(struct p2m_domain *p2m,
unsigned long gfn)
P2M_DEBUG("bogus recalc leaf at d%d:%lx:%u\n",
p2m->domain->domain_id, gfn, level);
p2mt_old = p2m_flags_to_type(l1e_get_flags(e));
- if ( p2m_is_changeable(p2mt_old) )
+ if ( p2m_check_changeable(p2mt_old) ||
+ (p2mt_old == p2m_ioreq_server && p2m->ioreq.server == NULL) )
{
unsigned long mask = ~0UL << (level * PAGETABLE_ORDER);
p2m_type_t p2mt = p2m_is_logdirty_range(p2m, gfn & mask,
gfn | ~mask)
But as you can see. I used p2m_check_changeable() here. Yu Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |