[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86/console: process softirqs between warning prints


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Thu, 17 Feb 2022 13:07:44 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fN/6gvNC3DHJvpRIEGPMEbEjSqfPxr1KMfpL3vg19xQ=; b=gCw9NZrMmN/RQOuTEKHx5hQ5KB6rFc7IMg7Y2YbGOQlZf8d4cSpgueL9OY/7hRN1or5B1LYI1b83RcyK4MkA3/vjnFYXq97fe7EWA4EFGYFThVR/RmFuUDhlqqccQJdCz7hDFs1JZdL0OAb7ZqKHrMJfweKXrRBCoso2BSUuJi+lSsnhBySxGrYRa5oZrl8lwjQAGih0XKrnh0Jiwgd7sIybLpf5vnhMcXi/WCi8LcfMJeVR1pOkfqt9CiHPZjgt+DB8FqP+PPskKMdPlZAW43ktM4mNHu+3W1E12wBIt2Skp4yzKb5HzmUiduAvjNZDesjFIBV5R17wz+K1xdTR/w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oFNYWbwgnGVAxw7p7264u3F2QAJth/CWQzIvRkrEOxRtktU3eCiSRfgCff7bIWpkHmFN5rRRxr0AHCFvciK6ExfWxDmk5UTHcTGwJ5nzWpEi/CgDkrpsQR6CKmuMELg3+8kI3qaxEQvJeqITSc+jlDv+ycIBzksRBTIiDFe5DpuVgamT93I4yeBq48Z5/yYBaMb4GZY1uYlHOWVBK3a4RkvsejG6zOnNPeqJqr4HdwGoQplueqOM+QcGfK//TDt58veHRhNec9Ls9kCQcq9tOTHjej/Yiz7d9KJm+z6DbyVXuh/LvhNhzTEKW0X0IXD3GedVJ7XMKIUBHuVe9QyWXg==
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Thu, 17 Feb 2022 12:07:59 +0000
  • Ironport-data: A9a23:ql4F/qs4GhxmQNYlyEnfXU6SQufnVNJZMUV32f8akzHdYApBsoF/q tZmKWHQafyLZDH0L4h3YNm1/RlXvpTTndcwS1dq/H8xHiMb+JbJXdiXEBz9bniYRiHhoOOLz Cm8hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGHdJZS5LwbZj2NYy2IfhWmthh PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ Npl8rjodgs0J5L1mvksSzIEKXFyFvEX5+qSSZS/mZT7I0zudnLtx7NlDV0sPJ1e8eFyaY1M3 aVGcnZXNEnF3r/ohuLgIgVvrp1LwM3DJoQQt2sm1TjEJf0nXYrCU+PB4towMDIY2J4QQ6qCO ZZxhTxHQA3cQzYSN2stE5MUnLbroUDhMGMFkQfAzUYwyzeKl1EguFT3C/LKfvSaSMMTmVyXz krW8mK8DhwEOdi3zTue7mnqluLJhTn8Wo8ZCPu/7PECqEaI2mUZBRkSVF26ifq0kEizX5RYM UN80igkoLU29UerZsLgRBD+q3mB1jYeRt5RHusS+AyLjK3O7G6k6nMsF2AbLoZ87YlvGGJsh gThc87V6SJH95nNdn6A74itry6DIQNJFz8OTnNVUl5QizX8m70bghXKR9dlNae6iNzpBD39q wy3QDgCa6Y71pBSifjilbzTq3f1/8WSEFZpjunCdj/9tmtEiJiZi5tEALQxxdJJN86nQ1aIp xDocODOvblVXflheMFgKdjh/Y1FBd7ZYVUwYnY1RvHNEghBHVb5Iui8BxkkeS9U3j4sI2OBX aMqkVo5CGVvFHWrd7RrRIm6Ft4ny6Ptffy8CKyJNoERPMQsL1DalM2LWaJ29zqy+KTLuftiU ap3jO72VSpKYUiZ5GHeqxghPU8DmXllmDK7qWHTxBW7y7uODEN5up9eWGZimtsRtfveyC2Mq o43H5LTl313Db2vCgGKoNV7BQ1bchAG6WXe9pU/mhireVE9RgnMypb5nNscRmCSt/8EzLiWo CDmCxQwJZiWrSSvFDhmo0tLMdvHdZ1+sWg6LWorO1Op0GIkeoGh8OEUcJ5fQFXt3LYLISdcQ 6ZXdsOeLO5ITzibqT0RYYOk9N5pdQixhBLINC2gOWBtc5llTg3P29nlYgqwq3VeUnvp7ZMz8 ++6ywfWYZsfXAA+XszYX+2ikgGqtn8HleMsA0aReotPeF/h+ZRBIjDqiqNlONkFLBjOn2PI1 wufDRoCi/PKpos5rIvAiaye9t/7GOpiBEtKWWLc6O/uZyXd+2Oix65GUfqJIm+BBD+lpv36a LwMnf/mMfABkFJbiKZGEu5mnfAk+t/ih75G1QA4Tn/FWEumV+F7KX6c0MgR6qAUnu1FuRG7U 16k88VBPenbI9vsFVMcKVZ3bumH0v1IyDDe4e5sfRf/7S5zurGGTV9TL1+HjykEdOl5N4Ysw OEAvs8K6lPg1kp2Y4je1i0EpX6RKnEgUrk8ssBICYDmvQMn11VebMGOESTx+pyON41BP0RCz uV4X0Yea2CwHnb/Tkc=
  • Ironport-hdrordr: A9a23:Geb5IqDSWcHFUGrlHemo55DYdb4zR+YMi2TDsHoBLiC9E/bo8/ xG+c5x6faaslossR0b9uxoW5PhfZq/z/BICOAqVN/JMTUO01HIEKhSqafk3j38C2nf24dmpM JdmnFFeb7N5I5B/KTH3DU=
  • Ironport-sdr: W/EH3YmRnDiMMPhBL+F7YKbiaPXkmtB7AyRr8JvHR7DG8hnG6z5waofCi7TNwI3q2WLCCx+hB/ FPjhSBCn6yn2bWhoXSwIGF31OaKVJxfR/L/OOODk1ukidTR8NI8sVVCVFHgCIyQUz0Rs6V6mQG q0QbN3E1KiPPib/pRXvaFyGUc4WAJMCnY2HeictEzISVc74BqAnc6nJKX9VRwT7C1KlOxzy4iM lN9A0a+p9IBnypMFAWgtulDJVt09o1DzE85jXIzhAE0AMLrpMUPYdWjZyGvcacCKYFDIS7xXtA PrZ7dZprhaqab6dmRKxUEgG4
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Thu, Feb 17, 2022 at 12:54:57PM +0100, Jan Beulich wrote:
> On 17.02.2022 09:28, Roger Pau Monne wrote:
> > Process softirqs while printing end of boot warnings. Each warning can
> > be several lines long, and on slow consoles printing multiple ones
> > without processing softirqs can result in the watchdog triggering:
> > 
> > (XEN) [   22.277806] ***************************************************
> > (XEN) [   22.417802] WARNING: CONSOLE OUTPUT IS SYNCHRONOUS
> > (XEN) [   22.556029] This option is intended to aid debugging of Xen by 
> > ensuring
> > (XEN) [   22.696802] that all output is synchronously delivered on the 
> > serial line.
> > (XEN) [   22.838024] However it can introduce SIGNIFICANT latencies and 
> > affect
> > (XEN) [   22.978710] timekeeping. It is NOT recommended for production use!
> > (XEN) [   23.119066] ***************************************************
> > (XEN) [   23.258865] Booted on L1TF-vulnerable hardware with 
> > SMT/Hyperthreading
> > (XEN) [   23.399560] enabled.  Please assess your configuration and choose 
> > an
> > (XEN) [   23.539925] explicit 'smt=<bool>' setting.  See XSA-273.
> > (XEN) [   23.678860] ***************************************************
> > (XEN) [   23.818492] Booted on MLPDS/MFBDS-vulnerable hardware with 
> > SMT/Hyperthreading
> > (XEN) [   23.959811] enabled.  Mitigations will not be fully effective.  
> > Please
> > (XEN) [   24.100396] choose an explicit smt=<bool> setting.  See XSA-297.
> > (XEN) [   24.240254] *************************************************(XEN) 
> > [   24.247302] Watchdog timer detects that CPU0 is stuck!
> > (XEN) [   24.386785] ----[ Xen-4.17-unstable  x86_64  debug=y  Tainted:   C 
> >    ]----
> > (XEN) [   24.527874] CPU:    0
> > (XEN) [   24.662422] RIP:    e008:[<ffff82d04025b84a>] 
> > drivers/char/ns16550.c#ns16550_tx_ready+0x3a/0x90
> > 
> > Fixes: ee3fd57acd ('xen: add warning infrastructure')
> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> > ---
> >  xen/common/warning.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/xen/common/warning.c b/xen/common/warning.c
> > index 0269c6715c..e6e1404baf 100644
> > --- a/xen/common/warning.c
> > +++ b/xen/common/warning.c
> > @@ -30,6 +30,7 @@ void __init warning_print(void)
> >      {
> >          printk("%s", warnings[i]);
> >          printk("***************************************************\n");
> > +        process_pending_softirqs();
> >      }
> 
> To be honest, I'm not convinced. This gets us pretty close to needing
> to process softirqs after _every_ line of output. If a console is this
> slow, the problem imo needs dealing with there (and according to irc
> we appear on a helpful track there already), not by sprinkling more
> process_pending_softirqs() all over the code.

There could be up to 20 warning messages of unknown length, so I do
think we need some processing of softirqs in the loop.

If you prefer I could do softirq processing only every 4? messages,
but I'm not sure it's worth it. Also there's no indication of the
length of messages, so IMO it's safer to just process softirqs after
each.

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.