From: David Miller <davem@davemloft.net>
To: jane.chu@oracle.com
Cc: sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org,
steven.sistare@oracle.com, rob.gardner@oracle.com,
anthony.yznaga@oracle.com
Subject: Re: [PATCH] arch/sparc: Measure receiver forward progress to avoid send mondo timeout
Date: Mon, 03 Jul 2017 02:50:04 -0700 (PDT) [thread overview]
Message-ID: <20170703.025004.1971065890099969455.davem@davemloft.net> (raw)
In-Reply-To: <1498683746-623218-1-git-send-email-jane.chu@oracle.com>
From: Jane Chu <jane.chu@oracle.com>
Date: Wed, 28 Jun 2017 15:02:26 -0600
> static void hypervisor_xcall_deliver(struct trap_per_cpu *tb, int cnt)
> {
> - int retries, this_cpu, prev_sent, i, saw_cpu_error;
> + int retries, this_cpu, prev_sent, i, rem;
> + uint16_t first_cpu = 0xffff;
> + unsigned long xc_rcvd = 0;
> + int usec_wait = cnt * 2;
> unsigned long status;
> + int ecpuerror_id = 0;
> + int enocpu_id = 0;
> u16 *cpu_list;
> + uint16_t cpu;
As you can see at the variable declarations around the ones you are
adding, "u16" is the appropriate type to use. "uint16_t" is not.
So my concern about this patch is that in my mind, getting into a
state where a cpu is looping and doing nothing but handling mondos
is a bug.
That cpu is making no progress in it's execution stream, and that's
problematic.
I'd rather we attack the issue that gets into this situation in the
first place.
It's because we don't optimize large amounts of page TLB flushes
properly.
Firstly, we don't have a way to pass the array of pages to flush.
That would cut down the mondos by orders of magnitude.
We also could have a cutoff where we do a full MM flush instead
of flushing individual pages.
I bet if you implemented these two things, it would not only
make the mondo timeouts go away, it with make cpus actually
make forward progress in their instruction stream rather than
looping like crazy processing mondos.
Thanks.
prev parent reply other threads:[~2017-07-03 9:50 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-28 21:02 Jane Chu
2017-07-03 9:50 ` David Miller [this message]
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=20170703.025004.1971065890099969455.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=anthony.yznaga@oracle.com \
--cc=jane.chu@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rob.gardner@oracle.com \
--cc=sparclinux@vger.kernel.org \
--cc=steven.sistare@oracle.com \
/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
all inboxes | Powered by JetHome®