qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 718a94: RISC-V: Update address bits to suppor


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 718a94: RISC-V: Update address bits to support sv39 and sv...
Date: Mon, 24 Sep 2018 09:13:40 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 718a941e19005492015ae7aa5db04d853b5af877
      
https://github.com/qemu/qemu/commit/718a941e19005492015ae7aa5db04d853b5af877
  Author: Michael Clark <address@hidden>
  Date:   2018-09-04 (Tue, 04 Sep 2018)

  Changed paths:
    M target/riscv/cpu.h

  Log Message:
  -----------
  RISC-V: Update address bits to support sv39 and sv48

Cc: Sagar Karandikar <address@hidden>
Cc: Bastian Koppelmann <address@hidden>
Cc: Palmer Dabbelt <address@hidden>
Cc: Alistair Francis <address@hidden>
Signed-off-by: Palmer Dabbelt <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: c3b03e5800a7151d3c746f40efceabdfdae08f85
      
https://github.com/qemu/qemu/commit/c3b03e5800a7151d3c746f40efceabdfdae08f85
  Author: Michael Clark <address@hidden>
  Date:   2018-09-04 (Tue, 04 Sep 2018)

  Changed paths:
    M target/riscv/cpu_bits.h
    M target/riscv/helper.c

  Log Message:
  -----------
  RISC-V: Improve page table walker spec compliance

- Inline PTE_TABLE check for better readability
- Change access checks from ternary operator to if
- Improve readibility of User page U mode and SUM test
- Disallow non U mode from fetching from User pages
- Add reserved PTE flag check: W or W|X
- Add misaligned PPN check
- Set READ protection for PTE X flag and mstatus.mxr
- Use memory_region_is_ram in pte update

Cc: Sagar Karandikar <address@hidden>
Cc: Bastian Koppelmann <address@hidden>
Cc: Palmer Dabbelt <address@hidden>
Cc: Alistair Francis <address@hidden>
Signed-off-by: Michael Clark <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: d78940ec5d07d3b514f2fd8f941c58118fce2815
      
https://github.com/qemu/qemu/commit/d78940ec5d07d3b514f2fd8f941c58118fce2815
  Author: Michael Clark <address@hidden>
  Date:   2018-09-04 (Tue, 04 Sep 2018)

  Changed paths:
    M hw/riscv/sifive_plic.c
    M include/hw/riscv/sifive_plic.h

  Log Message:
  -----------
  RISC-V: Use atomic_cmpxchg to update PLIC bitmaps

The PLIC previously used a mutex to protect against concurrent
access to the claimed and pending bitfields. Instead of using
a mutex, we update the bitfields using atomic_cmpxchg.

Rename sifive_plic_num_irqs_pending to sifive_plic_irqs_pending
and add an early out if any interrupts are pending as the
count of pending interrupts is not used.

Cc: Sagar Karandikar <address@hidden>
Cc: Bastian Koppelmann <address@hidden>
Cc: Palmer Dabbelt <address@hidden>
Cc: Alistair Francis <address@hidden>
Signed-off-by: Michael Clark <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: efbdbc26a9fc69c222113abd9b80aa38a036fb6b
      
https://github.com/qemu/qemu/commit/efbdbc26a9fc69c222113abd9b80aa38a036fb6b
  Author: Michael Clark <address@hidden>
  Date:   2018-09-04 (Tue, 04 Sep 2018)

  Changed paths:
    M target/riscv/helper.c

  Log Message:
  -----------
  RISC-V: Simplify riscv_cpu_local_irqs_pending

This commit is intended to improve readability.
There is no change to the logic.

Cc: Sagar Karandikar <address@hidden>
Cc: Bastian Koppelmann <address@hidden>
Cc: Palmer Dabbelt <address@hidden>
Cc: Alistair Francis <address@hidden>
Signed-off-by: Michael Clark <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: 6dbebd5545d2563ee74ec049983a7bf65f05d17f
      
https://github.com/qemu/qemu/commit/6dbebd5545d2563ee74ec049983a7bf65f05d17f
  Author: Emilio G. Cota <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M target/riscv/translate.c

  Log Message:
  -----------
  target/riscv: optimize cross-page direct jumps in softmmu

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: 3070543349712715b6f9337391b1eb592e7524f4
      
https://github.com/qemu/qemu/commit/3070543349712715b6f9337391b1eb592e7524f4
  Author: Emilio G. Cota <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M target/riscv/translate.c

  Log Message:
  -----------
  target/riscv: optimize indirect branches

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: ccf08e40bfeede0233c065645ca46efb0dd4c6bf
      
https://github.com/qemu/qemu/commit/ccf08e40bfeede0233c065645ca46efb0dd4c6bf
  Author: Emilio G. Cota <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M target/riscv/translate.c

  Log Message:
  -----------
  target/riscv: call gen_goto_tb on DISAS_TOO_MANY

Performance impact of this and the previous commits, measured with
the very-easy-to-cross-compile rv8-bench:
  https://github.com/rv8-io/rv8-bench

Host: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz

- Key:
  before: master
  after1,2,3: the 3 commits in this series (i.e. 3 is this commit)

- User-mode:

 bench      before  after1  after2  after3  final speedup
---------------------------------------------------------
 aes        1.12s   1.12s   1.10s   1.00s   1.12
 bigint     0.78s   0.78s   0.78s   0.78s   1
 dhrystone  0.96s   0.97s   0.49s   0.49s   1.9591837
 miniz      1.94s   1.94s   1.88s   1.86s   1.0430108
 norx       0.51s   0.51s   0.49s   0.48s   1.0625
 primes     0.85s   0.85s   0.84s   0.84s   1.0119048
 qsort      4.87s   4.88s   1.86s   1.86s   2.6182796
 sha512     0.76s   0.77s   0.64s   0.64s   1.1875

(after1 only applies to softmmu, so no surprises here)

- Full-system (fedora):

 bench      before  after1  after2  after3  final speedup
---------------------------------------------------------
 aes        2.68s   2.54s   2.60s   2.34s   1.1452991
 bigint     1.61s   1.56s   1.55s   1.64s   0.98170732
 dhrystone  1.78s   1.67s   1.25s   1.24s   1.4354839
 miniz      3.53s   3.35s   3.28s   3.35s   1.0537313
 norx       1.13s   1.09s   1.07s   1.06s   1.0660377
 primes     15.37s  15.41s  15.20s  15.37s  1
 qsort      7.20s   6.71s   3.85s   3.96s   1.8181818
 sha512     1.07s   1.04s   0.90s   0.90s   1.1888889

SoftMMU slows things down, so the numbers are less sensitive.
Cross-page jumps improve things a little bit, though.

Note that I'm not showing here averages, just results from a
single run, so with primes there isn't much to worry about.

Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: 53f54508dae677bb88d5b7ac46ed05e7da41326e
      
https://github.com/qemu/qemu/commit/53f54508dae677bb88d5b7ac46ed05e7da41326e
  Author: Alistair Francis <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M hw/riscv/virt.c

  Log Message:
  -----------
  hw/riscv/virtio: Set the soc device tree node as a simple-bus

To allow Linux to enumerate devices on the /soc/ node set it as a
"simple-bus".

Signed-off-by: Alistair Francis <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 117caacf9b427ef7d2161f15372e1572f1a384b3
      
https://github.com/qemu/qemu/commit/117caacf9b427ef7d2161f15372e1572f1a384b3
  Author: Alistair Francis <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M hw/riscv/spike.c

  Log Message:
  -----------
  hw/riscv/spike: Set the soc device tree node as a simple-bus

To allow Linux to enumerate devices on the /soc/ node set it as a
"simple-bus".

Signed-off-by: Alistair Francis <address@hidden>


  Commit: 1ca79ece35a5bcdcefb5a2582bc6da91f0640bf2
      
https://github.com/qemu/qemu/commit/1ca79ece35a5bcdcefb5a2582bc6da91f0640bf2
  Author: Igor Mammedov <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M target/riscv/cpu.h

  Log Message:
  -----------
  riscv: remove define cpu_init()

cpu_init() was removed since 2.12, so drop the define that is now unused.

Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael Clark <address@hidden>
Signed-off-by: Alistair Francis <address@hidden>


  Commit: ee4402eae1e24f776c2b58dfbe7e26c7a41e06e4
      
https://github.com/qemu/qemu/commit/ee4402eae1e24f776c2b58dfbe7e26c7a41e06e4
  Author: Peter Maydell <address@hidden>
  Date:   2018-09-24 (Mon, 24 Sep 2018)

  Changed paths:
    M hw/riscv/sifive_plic.c
    M hw/riscv/spike.c
    M hw/riscv/virt.c
    M include/hw/riscv/sifive_plic.h
    M target/riscv/cpu.h
    M target/riscv/cpu_bits.h
    M target/riscv/helper.c
    M target/riscv/translate.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/alistair/tags/pull-riscv-pullreq-20180905' into staging

A misc collection of RISC-V related patches for 3.1.

# gpg: Signature made Wed 05 Sep 2018 23:06:55 BST
# gpg:                using RSA key 21E10D29DF977054
# gpg: Good signature from "Alistair Francis <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: F6C4 AC46 D493 4868 D3B8  CE8F 21E1 0D29 DF97 7054

* remotes/alistair/tags/pull-riscv-pullreq-20180905:
  riscv: remove define cpu_init()
  hw/riscv/spike: Set the soc device tree node as a simple-bus
  hw/riscv/virtio: Set the soc device tree node as a simple-bus
  target/riscv: call gen_goto_tb on DISAS_TOO_MANY
  target/riscv: optimize indirect branches
  target/riscv: optimize cross-page direct jumps in softmmu
  RISC-V: Simplify riscv_cpu_local_irqs_pending
  RISC-V: Use atomic_cmpxchg to update PLIC bitmaps
  RISC-V: Improve page table walker spec compliance
  RISC-V: Update address bits to support sv39 and sv48

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/d5a515738ee2...ee4402eae1e2
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]