xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: Dario Faggioli <dfaggioli@suse.com>,
	Stefano Stabellini <stefano@stabellini.net>,
	Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, tim@xen.org,
	Milan Boberic <milanboberic94@gmail.com>,
	JBeulich@suse.com, Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: Re: null scheduler bug
Date: Thu, 27 Sep 2018 16:09:55 +0100	[thread overview]
Message-ID: <acbeae1c-fda1-a079-322a-786d7528ecfc@arm.com> (raw)
In-Reply-To: <86360891f996bdb078a5eff7f860fbbb39fbc5ac.camel@suse.com>

Hi Dario,

On 09/27/2018 03:32 PM, Dario Faggioli wrote:
> On Thu, 2018-09-27 at 15:15 +0200, Milan Boberic wrote:
>> Hi,
>> I applied patch and vwfi=native and everything works fine, I can
>> create and destroy guest domain as many times as I want.
>>
> Ok, now that we know it works, what do you guys prefer?
> 
> Stefano? Julien? I know it's not strictly an ARM-only issue, but I'm
> asking you because ARM is where it shows-up/harm the most.
> 
> I personally would be ok with:
> - doing a patch adding qhimark, qlowmark and blimit boot command line
>    parameters;
> - doing a patch (similar to this one) forcing the parameters to a
>    specific state (and printing a warning about that), if wfi=native is
>    used.
> 
> Thoughts?

I know I first suggested this but I have been thinking about it and 
trying to find a different approach. With NULL scheduler, you end up 
partitioning your platform. I think may have have Xen to be there just 
for handling hypercall, emulation and guest interrupt. So I would like 
to avoid adding an interrupt when possible.

In one of your e-mail, you wrote:

"Well, our implementation of RCU requires that, from time to time, the
various physical CPUs of your box become idle, or get an interrupt, or
go executing inside Xen (for hypercalls, vmexits, etc). In fact, a CPU
going through Xen is what allow us to tell that it reached a so-called
'quiescent state', which in turns is necessary for declaring a so-
called 'RCU grace period' over."

I don't quite agree with you on the definition of "quiescent state" 
here. To take the domain example, we want to wait until all the CPU has 
stopped using the pointer (an hypercall could race put_domain). That 
pointer will not be in-use if the CPU is in kernel-mode/user-mode or in 
the idle loop. Am I correct?

So I am wondering whether we could:
	- Mark any CPU in kernel-mode/user-mode quiet
	- Raise a RCU_SOFTIRQ in call_rcu?

With that solution, it may even be possible to avoid the timer in the 
idle loop.

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2018-09-27 15:10 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-12 23:03 null scheduler bug Stefano Stabellini
2018-09-13  7:04 ` Dario Faggioli
     [not found]   ` <CADJ6SV2G=51BK2p-bouNGfiS5sP2tiV6ztZZ7PFGjiptRw_P3w@mail.gmail.com>
2018-09-13  8:24     ` Dario Faggioli
2018-09-13 15:18       ` Milan Boberic
2018-09-13 17:39         ` Dario Faggioli
2018-09-14  9:21           ` Milan Boberic
2018-09-20 13:04             ` Milan Boberic
2018-09-20 16:09               ` Dario Faggioli
2018-09-21 14:14                 ` Milan Boberic
2018-09-21 16:20                   ` Dario Faggioli
2018-09-24 21:46                     ` Julien Grall
2018-09-25  9:02                       ` Dario Faggioli
2018-09-25 10:12                         ` Milan Boberic
2018-09-25 10:56                           ` Julien Grall
2018-09-25 11:15                         ` Julien Grall
2018-09-25 11:51                           ` Milan Boberic
2018-09-25 17:49                           ` Dario Faggioli
2018-09-27  9:50                             ` Dario Faggioli
2018-09-27 13:15                               ` Milan Boberic
2018-09-27 14:23                                 ` Dario Faggioli
2018-09-27 14:32                                 ` Dario Faggioli
2018-09-27 15:09                                   ` Julien Grall [this message]
2018-09-27 17:06                                     ` Dario Faggioli
2018-09-28  8:18                                       ` Milan Boberic
2018-10-01 12:03                                       ` Julien Grall
  -- strict thread matches above, loose matches on Subject: below --
2018-09-13  8:15 Milan Boberic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=acbeae1c-fda1-a079-322a-786d7528ecfc@arm.com \
    --to=julien.grall@arm.com \
    --cc=Andrew.Cooper3@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=dfaggioli@suse.com \
    --cc=jgross@suse.com \
    --cc=milanboberic94@gmail.com \
    --cc=stefano@stabellini.net \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).