All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrii Anisov <andrii.anisov@gmail.com>
To: Julien Grall <julien.grall@gmail.com>
Cc: Julien Grall <julien.grall@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Xen Devel <xen-devel@lists.xen.org>,
	"LOPEZ, FUENTES NACARINO Jairo Eduardo" <jairo@ruri.waseda.jp>,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: Re: RT Xen on ARM - R-Car series
Date: Fri, 15 Feb 2019 13:30:15 +0200	[thread overview]
Message-ID: <6f9e4f72-332a-679e-e369-c81c760a31c6@gmail.com> (raw)
In-Reply-To: <CAF3u54Dw4n+6HwyQ8-pXMNNMZbu4xVrTh9aV-WAe-XUxhoG1-g@mail.gmail.com>

Hello Julien,

On 14.02.19 19:29, Julien Grall wrote:
> I am not sure why you are speaking about the current implementation
> when my point was about the new implementation.
> 
> I guess your point stick even if we decide to use guest physical
> address.
For sure. The type of guest address used by hypervisor to reach runstate area and having that area mapped are quite orthogonal questions. But, IMHO, tightly coupled and might be solved together.

> Although, I am still unconvinced of the benefits to keep it
> mapped.
My point was reducing context switch time, but those controversial numbers left me confused.

>> I've measured the raw `update_runstate_area()` execution time. With runstate mapped - its execution time is less than my timer tick (120ns), with runstate not mapped - I've seen
> its execution time as 4 to 8 ticks (480-960ns).
> 
> Please provide the code you use to measure it. How often do you call it?
The code to see that is as simple as following:

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 0a2e997..d673d00 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -314,8 +314,16 @@ static void schedule_tail(struct vcpu *prev)
      context_saved(prev);
  
      if ( prev != current )
+    {
+        s_time_t t = 0;
+        if (current->domain->domain_id == 1)
+            t = NOW();
          update_runstate_area(current);
  
+        if (current->domain->domain_id == 1)
+            printk("cp = %"PRI_stime"\n", NOW()-t);
+    }
+
      /* Ensure that the vcpu has an up-to-date time base. */
      update_vcpu_system_time(current);
  }

>> But using TBM, I encountered that making runstate mapped with Roger's patch increases the IRQ latency from ~7000ns to ~7900ns. It is opposite to my expectations and to the raw decrease of `runstate_update_area()` execution time.
> 
> Raw benchmarks should be taken with a grain of salt. The more if you
> only benchmark a single function as the context switch may introduce
> latency/cache eviction.
> 
> Although, I would have expected the numbers to be the same. What is
> your configuration here? Do you have others guests running? How many
> context switch do you have?

The configuration is the same as here [1].


> Also, what are the modifications you made in TBM to use runstate?

I've just registered the runstate area with following [2].

[1] https://lists.xenproject.org/archives/html/xen-devel/2018-12/msg00881.html
[2] https://github.com/aanisov/tbm/commit/806e8a7e6e6c72aef10f1c8a579424252aca2635


-- 
Sincerely,
Andrii Anisov.

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

  reply	other threads:[~2019-02-15 11:30 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CACrvCsaeHuwzZzUQTzNYF7fqmgQWNJUVOQZv9D0MnYrXjqzZtQ@mail.gmail.com>
2018-12-22 12:21 ` RT Xen on ARM - R-Car series Andrii Anisov
2018-12-25 16:07   ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2018-12-27 11:07     ` Andrii Anisov
2018-12-28 15:22       ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2018-12-28  8:28         ` Andrii Anisov
2018-12-28  8:32           ` Andrii Anisov
2018-12-28  8:39           ` Andrii Anisov
2019-01-04  9:09             ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2019-01-08 17:04               ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2019-01-11 20:12                 ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2019-01-14  8:42                   ` Andrii Anisov
2019-01-16  7:53                   ` Andrii Anisov
2019-01-21 18:04                     ` LOPEZ, FUENTES NACARINO Jairo Eduardo
     [not found]                     ` <CACrvCsZB-tps6=Vr=1Phf5oo5eUReabMLJzkbO3d2hmNLDOxww@mail.gmail.com>
     [not found]                       ` <7e217489-2c1a-c35f-d51f-0969654aa8cc@gmail.com>
     [not found]                         ` <CACrvCsaYJ-zGkZwfdV7BXDABW8u_EDQetU3pq+2otRGXWTXagw@mail.gmail.com>
     [not found]                           ` <4d078801-b804-06e7-ad5c-8032b1dbaa84@gmail.com>
2019-01-28 17:20                             ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2019-01-28  8:25                               ` Andrii Anisov
2019-01-29 15:30                                 ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2019-01-29 13:29                                   ` Andrii Anisov
2019-01-30 20:23                                     ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2019-01-30 12:12                                       ` Julien Grall
2019-01-31 11:22                                         ` Andrii Anisov
2019-01-31 11:37                                           ` Julien Grall
2019-01-31 12:00                                             ` Andrii Anisov
2019-01-31 12:20                                               ` Julien Grall
2019-01-31 21:56                                                 ` Stefano Stabellini
2019-01-31 23:14                                                   ` Julien Grall
2019-02-01 10:02                                                     ` Andrii Anisov
2019-02-01 10:12                                                       ` Julien Grall
2019-02-01 10:35                                                         ` Andrii Anisov
2019-02-01 11:06                                                           ` Julien Grall
2019-02-01 16:53                                                     ` Roger Pau Monné
2019-02-01 17:40                                                       ` Julien Grall
2019-02-04 10:28                                                         ` Andrii Anisov
2019-02-04 11:21                                                           ` Julien Grall
2019-02-04 14:46                                                             ` Andrii Anisov
2019-02-04 15:05                                                               ` Julien Grall
2019-02-04 12:53                                                         ` Roger Pau Monné
2019-02-04 21:58                                                           ` Julien Grall
2019-02-05  8:40                                                             ` Andrii Anisov
2019-02-05  9:45                                                               ` Roger Pau Monné
2019-02-05  9:54                                                                 ` Andrii Anisov
2019-02-05 10:10                                                                   ` Roger Pau Monné
2019-02-06 20:20                                                               ` Andrii Anisov
2019-02-06 21:03                                                                 ` Stefano Stabellini
2019-02-07  9:42                                                                   ` Andrii Anisov
2019-02-07 10:35                                                                     ` Roger Pau Monné
2019-02-07 10:59                                                                       ` Julien Grall
2019-02-12 18:21                                                                         ` Andrii Anisov
2019-02-12 19:21                                                                           ` Julien Grall
2019-02-14 14:18                                                                             ` Andrii Anisov
2019-02-14 17:29                                                                               ` Julien Grall
2019-02-15 11:30                                                                                 ` Andrii Anisov [this message]
2019-02-15 17:13                                                                                   ` Julien Grall
2019-02-15 17:41                                                                                     ` Andrii Anisov
2019-02-16  8:42                                                                                       ` Julien Grall
2019-02-12 18:21                                                                       ` Andrii Anisov
2019-02-14 16:29                                                                         ` Roger Pau Monné
2019-02-15 15:21                                                                           ` Andrii Anisov
2019-02-15 16:31                                                                             ` Julien Grall
2019-02-15 17:30                                                                               ` Andrii Anisov
2019-02-15 18:36                                                                                 ` Julien Grall
2019-02-14 17:08                                                                         ` Julien Grall
2019-02-05  9:26                                                             ` Roger Pau Monné
2019-02-01 10:07                                                   ` Andrii Anisov
2019-02-01 10:16                                                     ` Julien Grall
2019-02-01 10:35                                                       ` Andrii Anisov
2019-02-01 10:51                                                         ` Julien Grall
2019-02-01 18:00                                                           ` Stefano Stabellini
2019-02-04 10:32                                                           ` Andrii Anisov
2019-02-04 11:36                                                             ` Julien Grall
2019-02-04 15:19                                                               ` Andrii Anisov
2019-02-04 22:06                                                                 ` Julien Grall
2019-02-05  9:01                                                                   ` Andrii Anisov
2019-02-05 19:18                                                                     ` Stefano Stabellini
2019-02-07 10:53                                                                       ` Andrii Anisov
     [not found]                                         ` <CACrvCsbkFG=3To83qi7xxmtmgC_9PKvuLz73edhiaV7TsJAZqQ@mail.gmail.com>
2019-01-31 12:24                                           ` Julien Grall
2019-01-16 20:46                   ` Andrii Anisov
2019-01-16  7:40                 ` Andrii Anisov
2019-01-17  2:08                   ` LOPEZ, FUENTES NACARINO Jairo Eduardo
2018-12-28 17:35         ` LOPEZ, FUENTES NACARINO Jairo Eduardo

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=6f9e4f72-332a-679e-e369-c81c760a31c6@gmail.com \
    --to=andrii.anisov@gmail.com \
    --cc=jairo@ruri.waseda.jp \
    --cc=julien.grall@arm.com \
    --cc=julien.grall@gmail.com \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xen.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.