Branch: refs/heads/next
  Home:   https://github.com/siemens/jailhouse
  Commit: da353b5769a2a2266f206c1d0e53402e4b99386c
      
https://github.com/siemens/jailhouse/commit/da353b5769a2a2266f206c1d0e53402e4b99386c
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/asm-defines.c
    M hypervisor/arch/arm/entry.S
    M hypervisor/arch/arm/include/asm/percpu.h
    M hypervisor/arch/arm/setup.c

  Log Message:
  -----------
  arm: Use asm-defines.h for struct per_cpu members

Port the logic over from x86 and also drop CHECK_ASSUMPTION here.

The only slightly ugly detail: the PERCPU_SIZE_SHIFT define is now
duplicated in both asm/percpu.h instances because there is no good
generic header yet to hold it. Can be cleaned up later on.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: fd447ceecb0e2555d017c3b73c9bd5d9b62f1436
      
https://github.com/siemens/jailhouse/commit/fd447ceecb0e2555d017c3b73c9bd5d9b62f1436
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/smp-vexpress.c

  Log Message:
  -----------
  arm: Add missing printk.h include

Some implicit inclusion disappeared.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 7c2644bf2bd841b5d97a8f94856eb57b753a2ef9
      
https://github.com/siemens/jailhouse/commit/7c2644bf2bd841b5d97a8f94856eb57b753a2ef9
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v3.c

  Log Message:
  -----------
  arm: Fix build warning in gic-v3

Leftover from the mmio_perform_access refactoring.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 315273ebcf6d3cc2c28bc3744118fb2f66a72a54
      
https://github.com/siemens/jailhouse/commit/315273ebcf6d3cc2c28bc3744118fb2f66a72a54
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/include/asm/irqchip.h

  Log Message:
  -----------
  arm: Remove unneeded include from irqchip.h

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 0e82670826fd2283d7eb032a3eb11ccf8013c815
      
https://github.com/siemens/jailhouse/commit/0e82670826fd2283d7eb032a3eb11ccf8013c815
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Un-inline spi_in_cell

To big to be inlined, and we also want to avoid dereferencing struct
cell in the header due to upcoming include reordering.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 03475882880dc5ae49d0852c628a8b8958be80ac
      
https://github.com/siemens/jailhouse/commit/03475882880dc5ae49d0852c628a8b8958be80ac
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove write-only priority field from pending_irq

We do not support interrupt priorities so far, and we may have to model
them differently into queues once we do. Remove the de facto unused
field.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 3b6a758cb690553583fab3156bce14114775e726
      
https://github.com/siemens/jailhouse/commit/3b6a758cb690553583fab3156bce14114775e726
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove maintenance flag from pending_irq.type.sgi

It was always cleared.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: d62540a7a2a5a6c769550bd250c359bea3910795
      
https://github.com/siemens/jailhouse/commit/d62540a7a2a5a6c769550bd250c359bea3910795
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove hw flag from pending_irq

Can be derived from virt_id.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 05c1d67e0a7913f967a49a76de8cf93dafba1489
      
https://github.com/siemens/jailhouse/commit/05c1d67e0a7913f967a49a76de8cf93dafba1489
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove cpuid from pending_irq

Was always set to 0.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 35a46c75c5eb577c9c780340cdbc92d844d1eaca
      
https://github.com/siemens/jailhouse/commit/35a46c75c5eb577c9c780340cdbc92d844d1eaca
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove irq field from pending_irq

Always identical to virt_id.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: b77b9793126fd278ec3839cbead5bf21a389bdd0
      
https://github.com/siemens/jailhouse/commit/b77b9793126fd278ec3839cbead5bf21a389bdd0
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove return code from irqchip_inject_pending

It's always 0.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: f5dcc13bcf89d190d35b99cf79a8586ea7c1a93d
      
https://github.com/siemens/jailhouse/commit/f5dcc13bcf89d190d35b99cf79a8586ea7c1a93d
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove unused return code of irqchip_set_pending

No caller evaluated it so far, and none of them has a use case for it.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 35b1928d4977040a4a9f4fc1f2a093882182a953
      
https://github.com/siemens/jailhouse/commit/35b1928d4977040a4a9f4fc1f2a093882182a953
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Disable maintenance interrupt on successful injection

We enable the maintenance interrupt when all list registers are in use.
However, there was no disabling of it again. Apparently, it rarely
triggered in the field, otherwise we would have seen a lot of
maintenance interrupt storms, thus locked-up systems.

This introduces another callback to enable or disable the maintenance
interrupt. It is now controlled by irqchip_inject_pending, the function
that is also called when handling a maintenance interrupt.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 9fc9f67f05c9fbe872f647a0d47f54e7dbb9b90f
      
https://github.com/siemens/jailhouse/commit/9fc9f67f05c9fbe872f647a0d47f54e7dbb9b90f
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Make sure to not queue interrupt that were rejected as duplicates

If the inject_irq callback detect that an interrupt is already queued
in some list register, do not insert it into the software queue, thus
coalesce the event like real hardware does.

The change in the return code of inject_irq is more cosmetic, to reflect
the meaning better.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 8b121b498b6e2f204c9b128b42e5423118be220b
      
https://github.com/siemens/jailhouse/commit/8b121b498b6e2f204c9b128b42e5423118be220b
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/include/asm/percpu.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Convert software queue of pending interrupts into a ring

This massively simplifies the code and reduces the memory usage in
struct per_cpu. However, adding interrupt priorities later on may
require another rework.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: c8a9a6f84885c366160a394aaaf08715e426eaf4
      
https://github.com/siemens/jailhouse/commit/c8a9a6f84885c366160a394aaaf08715e426eaf4
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/control.c
    M hypervisor/arch/arm/gic-common.c
    M hypervisor/arch/arm/include/asm/irqchip.h
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Remove try_inject parameter from irqchip_set_pending

We can only perform injection (and we also always want to) if target
CPU equals caller CPU, and this is better checked inside the function.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: e24bab3f5e70d877d470659569f22e2838813d0f
      
https://github.com/siemens/jailhouse/commit/e24bab3f5e70d877d470659569f22e2838813d0f
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Enable maintenance interrupt also from irqchip_set_pending

In case we set an interrupt pending for the local CPU and cannot queue
it with the hardware, make sure the maintenance interrupt is on.
Otherwise, we risk to delay guest interrupts or cause the guest to get
stuck.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 6f28047e0f4d78af4a712e6f1f2824e9a030a888
      
https://github.com/siemens/jailhouse/commit/6f28047e0f4d78af4a712e6f1f2824e9a030a888
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c

  Log Message:
  -----------
  arm: Enable / disable maintenance interrupt in distributor

We did not get any maintenance interrupts so far because we didn't
enable the source in the distributor so far. Fix this, but also disable
it again when shutting down.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 25a04fd0f39d7bef4ee38ec470cc0230084e4818
      
https://github.com/siemens/jailhouse/commit/25a04fd0f39d7bef4ee38ec470cc0230084e4818
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-common.c

  Log Message:
  -----------
  arm: Protect the maintenance PPI from cell changes

We must not allow the cells to manipulate distributor registers or
register bits related to the maintenance interrupt.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 16446c9c23a44103fc3f7086c6dae4e5c69b4acf
      
https://github.com/siemens/jailhouse/commit/16446c9c23a44103fc3f7086c6dae4e5c69b4acf
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Make cpu_init and cpu_reset callbacks mandatory

No need for checking them to be NULL, we need them in both
implementations.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 34e025e1dee9cd33f871d94f74ab9df0444bc48b
      
https://github.com/siemens/jailhouse/commit/34e025e1dee9cd33f871d94f74ab9df0444bc48b
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Reject unknown GIC versions

We would likely crash anyway due to irqchip containing only NULL
pointers.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: af45eca3e340c05f6c2b2ff3301df8aeaa46938c
      
https://github.com/siemens/jailhouse/commit/af45eca3e340c05f6c2b2ff3301df8aeaa46938c
  Author: Jan Kiszka <[email protected]>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M hypervisor/arch/arm/gic-v2.c
    M hypervisor/arch/arm/gic-v3.c
    M hypervisor/arch/arm/irqchip.c

  Log Message:
  -----------
  arm: Consolidate gic_irqchip to irqchip

Likely, we will never support alternative irqchips to the GIC (only
cascaded ones). So this copying-over is not required.

Signed-off-by: Jan Kiszka <[email protected]>


Compare: 
https://github.com/siemens/jailhouse/compare/a9f949b08350...af45eca3e340

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to