[PATCH v3 0/5] ppc: Enable full Xen build

Shawn Anastasio posted 5 patches 8 months ago
Only 2 patches received!
There is a newer version of this series
xen/arch/ppc/Kconfig                     |   1 +
xen/arch/ppc/Makefile                    |  17 +-
xen/arch/ppc/arch.mk                     |   3 -
xen/arch/ppc/include/asm/altp2m.h        |  25 ++
xen/arch/ppc/include/asm/atomic.h        | 384 +++++++++++++++++++++++
xen/arch/ppc/include/asm/bitops.h        | 330 ++++++++++++++++++-
xen/arch/ppc/include/asm/bug.h           |   9 +
xen/arch/ppc/include/asm/cache.h         |   2 +
xen/arch/ppc/include/asm/config.h        |  10 +
xen/arch/ppc/include/asm/cpufeature.h    |  10 +
xen/arch/ppc/include/asm/current.h       |  43 +++
xen/arch/ppc/include/asm/delay.h         |  12 +
xen/arch/ppc/include/asm/device.h        |  53 ++++
xen/arch/ppc/include/asm/div64.h         |  14 +
xen/arch/ppc/include/asm/domain.h        |  47 +++
xen/arch/ppc/include/asm/event.h         |  36 +++
xen/arch/ppc/include/asm/flushtlb.h      |  24 ++
xen/arch/ppc/include/asm/grant_table.h   |   5 +
xen/arch/ppc/include/asm/guest_access.h  |  68 ++++
xen/arch/ppc/include/asm/guest_atomics.h |  23 ++
xen/arch/ppc/include/asm/hardirq.h       |  19 ++
xen/arch/ppc/include/asm/hypercall.h     |   5 +
xen/arch/ppc/include/asm/io.h            |  16 +
xen/arch/ppc/include/asm/iocap.h         |   8 +
xen/arch/ppc/include/asm/iommu.h         |   8 +
xen/arch/ppc/include/asm/irq.h           |  33 ++
xen/arch/ppc/include/asm/mem_access.h    |   5 +
xen/arch/ppc/include/asm/memory.h        |  34 ++
xen/arch/ppc/include/asm/mm.h            | 248 ++++++++++++++-
xen/arch/ppc/include/asm/monitor.h       |  43 +++
xen/arch/ppc/include/asm/nospec.h        |  15 +
xen/arch/ppc/include/asm/numa.h          |  26 ++
xen/arch/ppc/include/asm/p2m.h           | 105 +++++++
xen/arch/ppc/include/asm/page.h          |  18 ++
xen/arch/ppc/include/asm/paging.h        |   7 +
xen/arch/ppc/include/asm/pci.h           |   7 +
xen/arch/ppc/include/asm/percpu.h        |  24 ++
xen/arch/ppc/include/asm/processor.h     |  10 +
xen/arch/ppc/include/asm/random.h        |   9 +
xen/arch/ppc/include/asm/setup.h         |   6 +
xen/arch/ppc/include/asm/smp.h           |  18 ++
xen/arch/ppc/include/asm/softirq.h       |   8 +
xen/arch/ppc/include/asm/spinlock.h      |  15 +
xen/arch/ppc/include/asm/system.h        | 224 ++++++++++++-
xen/arch/ppc/include/asm/time.h          |  21 ++
xen/arch/ppc/include/asm/vm_event.h      |  49 +++
xen/arch/ppc/include/asm/xenoprof.h      |   0
xen/arch/ppc/mm-radix.c                  |  44 ++-
xen/arch/ppc/setup.c                     |   8 +
xen/arch/ppc/stubs.c                     | 345 ++++++++++++++++++++
xen/arch/ppc/tlb-radix.c                 |   2 +-
xen/include/public/hvm/save.h            |   2 +
xen/include/public/pmu.h                 |   2 +
xen/include/public/xen.h                 |   2 +
54 files changed, 2491 insertions(+), 11 deletions(-)
create mode 100644 xen/arch/ppc/include/asm/altp2m.h
create mode 100644 xen/arch/ppc/include/asm/atomic.h
create mode 100644 xen/arch/ppc/include/asm/cpufeature.h
create mode 100644 xen/arch/ppc/include/asm/current.h
create mode 100644 xen/arch/ppc/include/asm/delay.h
create mode 100644 xen/arch/ppc/include/asm/device.h
create mode 100644 xen/arch/ppc/include/asm/div64.h
create mode 100644 xen/arch/ppc/include/asm/domain.h
create mode 100644 xen/arch/ppc/include/asm/event.h
create mode 100644 xen/arch/ppc/include/asm/flushtlb.h
create mode 100644 xen/arch/ppc/include/asm/grant_table.h
create mode 100644 xen/arch/ppc/include/asm/guest_access.h
create mode 100644 xen/arch/ppc/include/asm/guest_atomics.h
create mode 100644 xen/arch/ppc/include/asm/hardirq.h
create mode 100644 xen/arch/ppc/include/asm/hypercall.h
create mode 100644 xen/arch/ppc/include/asm/io.h
create mode 100644 xen/arch/ppc/include/asm/iocap.h
create mode 100644 xen/arch/ppc/include/asm/iommu.h
create mode 100644 xen/arch/ppc/include/asm/irq.h
create mode 100644 xen/arch/ppc/include/asm/mem_access.h
create mode 100644 xen/arch/ppc/include/asm/memory.h
create mode 100644 xen/arch/ppc/include/asm/monitor.h
create mode 100644 xen/arch/ppc/include/asm/nospec.h
create mode 100644 xen/arch/ppc/include/asm/numa.h
create mode 100644 xen/arch/ppc/include/asm/p2m.h
create mode 100644 xen/arch/ppc/include/asm/paging.h
create mode 100644 xen/arch/ppc/include/asm/pci.h
create mode 100644 xen/arch/ppc/include/asm/percpu.h
create mode 100644 xen/arch/ppc/include/asm/random.h
create mode 100644 xen/arch/ppc/include/asm/setup.h
create mode 100644 xen/arch/ppc/include/asm/smp.h
create mode 100644 xen/arch/ppc/include/asm/softirq.h
create mode 100644 xen/arch/ppc/include/asm/spinlock.h
create mode 100644 xen/arch/ppc/include/asm/time.h
create mode 100644 xen/arch/ppc/include/asm/vm_event.h
create mode 100644 xen/arch/ppc/include/asm/xenoprof.h
create mode 100644 xen/arch/ppc/stubs.c
[PATCH v3 0/5] ppc: Enable full Xen build
Posted by Shawn Anastasio 8 months ago
Hello all,

This patch series performs all of the additions necessary to drop the
build overrides for PPC and enable the full Xen build. Except in cases
where compatibile implementations already exist (e.g. atomic.h and
bitops.h), the newly added definitions are simple, unimplemented stubs
that just call BUG_ON("unimplemented").

A few miscellaneous changes were also made to non-ppc code as well,
specifically a few missing header fixes in common.

Thanks,
Shawn

--
v3: Address review comments from v2.

v2: Address review comments from v1. Some changes are still pending until
the following patches are merged:
  - [PATCH] mem-sharing: move (x86) / drop (Arm) arch_dump_shared_mem_info()
  https://lists.xen.org/archives/html/xen-devel/2023-08/msg00887.html

  - [PATCH] move max_page and total_pages to common code
  https://lists.xen.org/archives/html/xen-devel/2023-08/msg00874.html

Shawn Anastasio (5):
  xen/ppc: Implement atomic.h
  xen/ppc: Implement bitops.h
  xen/ppc: Define minimal stub headers required for full build
  xen/ppc: Add stub function and symbol definitions
  xen/ppc: Enable full Xen build

 xen/arch/ppc/Kconfig                     |   1 +
 xen/arch/ppc/Makefile                    |  17 +-
 xen/arch/ppc/arch.mk                     |   3 -
 xen/arch/ppc/include/asm/altp2m.h        |  25 ++
 xen/arch/ppc/include/asm/atomic.h        | 384 +++++++++++++++++++++++
 xen/arch/ppc/include/asm/bitops.h        | 330 ++++++++++++++++++-
 xen/arch/ppc/include/asm/bug.h           |   9 +
 xen/arch/ppc/include/asm/cache.h         |   2 +
 xen/arch/ppc/include/asm/config.h        |  10 +
 xen/arch/ppc/include/asm/cpufeature.h    |  10 +
 xen/arch/ppc/include/asm/current.h       |  43 +++
 xen/arch/ppc/include/asm/delay.h         |  12 +
 xen/arch/ppc/include/asm/device.h        |  53 ++++
 xen/arch/ppc/include/asm/div64.h         |  14 +
 xen/arch/ppc/include/asm/domain.h        |  47 +++
 xen/arch/ppc/include/asm/event.h         |  36 +++
 xen/arch/ppc/include/asm/flushtlb.h      |  24 ++
 xen/arch/ppc/include/asm/grant_table.h   |   5 +
 xen/arch/ppc/include/asm/guest_access.h  |  68 ++++
 xen/arch/ppc/include/asm/guest_atomics.h |  23 ++
 xen/arch/ppc/include/asm/hardirq.h       |  19 ++
 xen/arch/ppc/include/asm/hypercall.h     |   5 +
 xen/arch/ppc/include/asm/io.h            |  16 +
 xen/arch/ppc/include/asm/iocap.h         |   8 +
 xen/arch/ppc/include/asm/iommu.h         |   8 +
 xen/arch/ppc/include/asm/irq.h           |  33 ++
 xen/arch/ppc/include/asm/mem_access.h    |   5 +
 xen/arch/ppc/include/asm/memory.h        |  34 ++
 xen/arch/ppc/include/asm/mm.h            | 248 ++++++++++++++-
 xen/arch/ppc/include/asm/monitor.h       |  43 +++
 xen/arch/ppc/include/asm/nospec.h        |  15 +
 xen/arch/ppc/include/asm/numa.h          |  26 ++
 xen/arch/ppc/include/asm/p2m.h           | 105 +++++++
 xen/arch/ppc/include/asm/page.h          |  18 ++
 xen/arch/ppc/include/asm/paging.h        |   7 +
 xen/arch/ppc/include/asm/pci.h           |   7 +
 xen/arch/ppc/include/asm/percpu.h        |  24 ++
 xen/arch/ppc/include/asm/processor.h     |  10 +
 xen/arch/ppc/include/asm/random.h        |   9 +
 xen/arch/ppc/include/asm/setup.h         |   6 +
 xen/arch/ppc/include/asm/smp.h           |  18 ++
 xen/arch/ppc/include/asm/softirq.h       |   8 +
 xen/arch/ppc/include/asm/spinlock.h      |  15 +
 xen/arch/ppc/include/asm/system.h        | 224 ++++++++++++-
 xen/arch/ppc/include/asm/time.h          |  21 ++
 xen/arch/ppc/include/asm/vm_event.h      |  49 +++
 xen/arch/ppc/include/asm/xenoprof.h      |   0
 xen/arch/ppc/mm-radix.c                  |  44 ++-
 xen/arch/ppc/setup.c                     |   8 +
 xen/arch/ppc/stubs.c                     | 345 ++++++++++++++++++++
 xen/arch/ppc/tlb-radix.c                 |   2 +-
 xen/include/public/hvm/save.h            |   2 +
 xen/include/public/pmu.h                 |   2 +
 xen/include/public/xen.h                 |   2 +
 54 files changed, 2491 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/ppc/include/asm/altp2m.h
 create mode 100644 xen/arch/ppc/include/asm/atomic.h
 create mode 100644 xen/arch/ppc/include/asm/cpufeature.h
 create mode 100644 xen/arch/ppc/include/asm/current.h
 create mode 100644 xen/arch/ppc/include/asm/delay.h
 create mode 100644 xen/arch/ppc/include/asm/device.h
 create mode 100644 xen/arch/ppc/include/asm/div64.h
 create mode 100644 xen/arch/ppc/include/asm/domain.h
 create mode 100644 xen/arch/ppc/include/asm/event.h
 create mode 100644 xen/arch/ppc/include/asm/flushtlb.h
 create mode 100644 xen/arch/ppc/include/asm/grant_table.h
 create mode 100644 xen/arch/ppc/include/asm/guest_access.h
 create mode 100644 xen/arch/ppc/include/asm/guest_atomics.h
 create mode 100644 xen/arch/ppc/include/asm/hardirq.h
 create mode 100644 xen/arch/ppc/include/asm/hypercall.h
 create mode 100644 xen/arch/ppc/include/asm/io.h
 create mode 100644 xen/arch/ppc/include/asm/iocap.h
 create mode 100644 xen/arch/ppc/include/asm/iommu.h
 create mode 100644 xen/arch/ppc/include/asm/irq.h
 create mode 100644 xen/arch/ppc/include/asm/mem_access.h
 create mode 100644 xen/arch/ppc/include/asm/memory.h
 create mode 100644 xen/arch/ppc/include/asm/monitor.h
 create mode 100644 xen/arch/ppc/include/asm/nospec.h
 create mode 100644 xen/arch/ppc/include/asm/numa.h
 create mode 100644 xen/arch/ppc/include/asm/p2m.h
 create mode 100644 xen/arch/ppc/include/asm/paging.h
 create mode 100644 xen/arch/ppc/include/asm/pci.h
 create mode 100644 xen/arch/ppc/include/asm/percpu.h
 create mode 100644 xen/arch/ppc/include/asm/random.h
 create mode 100644 xen/arch/ppc/include/asm/setup.h
 create mode 100644 xen/arch/ppc/include/asm/smp.h
 create mode 100644 xen/arch/ppc/include/asm/softirq.h
 create mode 100644 xen/arch/ppc/include/asm/spinlock.h
 create mode 100644 xen/arch/ppc/include/asm/time.h
 create mode 100644 xen/arch/ppc/include/asm/vm_event.h
 create mode 100644 xen/arch/ppc/include/asm/xenoprof.h
 create mode 100644 xen/arch/ppc/stubs.c

--
2.30.2
Re: [PATCH v3 0/5] ppc: Enable full Xen build
Posted by Jan Beulich 7 months, 3 weeks ago
On 01.09.2023 20:25, Shawn Anastasio wrote:
> Hello all,
> 
> This patch series performs all of the additions necessary to drop the
> build overrides for PPC and enable the full Xen build. Except in cases
> where compatibile implementations already exist (e.g. atomic.h and
> bitops.h), the newly added definitions are simple, unimplemented stubs
> that just call BUG_ON("unimplemented").
> 
> A few miscellaneous changes were also made to non-ppc code as well,
> specifically a few missing header fixes in common.

Nit: This is stale now, isn't it?

But what I really wanted to mention here: Something's odd with how you
sent this series. I received 0, 1, and 3 as one thread, 2 and 5 as
another one, and 4 entirely standalone. The list archive [1] has all of
2, 4, and 5 as standalone mails.

Another thing I wanted to ask: Would it be possible to configure
whatever mail client you use for sending patches to send plain ASCII or
UTF-8 text, not quoted-printable ones? At least for me, so far having
shoveled in most of your patches, that encoding gets in the way of
running a pre-apply-test with plain "patch --dry-run -F0" on all
patches (from a script I use for committing). I can help myself with
plain "git am", but sooner or later some patch will end up having a
collision with something else having gone in, and then I'll need to
manually clean up after the failed / incomplete command.

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2023-09/threads.html
Re: [PATCH v3 0/5] ppc: Enable full Xen build
Posted by Shawn Anastasio 7 months, 3 weeks ago
On 9/5/23 11:07 AM, Jan Beulich wrote:
> On 01.09.2023 20:25, Shawn Anastasio wrote:
>> Hello all,
>>
>> This patch series performs all of the additions necessary to drop the
>> build overrides for PPC and enable the full Xen build. Except in cases
>> where compatibile implementations already exist (e.g. atomic.h and
>> bitops.h), the newly added definitions are simple, unimplemented stubs
>> that just call BUG_ON("unimplemented").
>>
>> A few miscellaneous changes were also made to non-ppc code as well,
>> specifically a few missing header fixes in common.
> 
> Nit: This is stale now, isn't it?

Yes, I'll drop that sentence.

> But what I really wanted to mention here: Something's odd with how you
> sent this series. I received 0, 1, and 3 as one thread, 2 and 5 as
> another one, and 4 entirely standalone. The list archive [1] has all of
> 2, 4, and 5 as standalone mails.
>

I'm also seeing this in my own inbox -- I'm not sure what happened here
since I used the same exact git send-email invocation that I used last
time.

> Another thing I wanted to ask: Would it be possible to configure
> whatever mail client you use for sending patches to send plain ASCII or
> UTF-8 text, not quoted-printable ones? At least for me, so far having
> shoveled in most of your patches, that encoding gets in the way of
> running a pre-apply-test with plain "patch --dry-run -F0" on all
> patches (from a script I use for committing). I can help myself with
> plain "git am", but sooner or later some patch will end up having a
> collision with something else having gone in, and then I'll need to
> manually clean up after the failed / incomplete command.
>

If I'm understanding correctly, it looks like git send-email's
--transfer-encoding=8bit [1] should do what you're asking. I'll do this
for future submissions.

[1] https://git-scm.com/docs/git-send-email

> Jan

Thanks,
Shawn
Re: [PATCH v3 0/5] ppc: Enable full Xen build
Posted by Shawn Anastasio 7 months, 3 weeks ago
On 9/5/23 4:02 PM, Shawn Anastasio wrote:
> On 9/5/23 11:07 AM, Jan Beulich wrote:
>> On 01.09.2023 20:25, Shawn Anastasio wrote:
>> Another thing I wanted to ask: Would it be possible to configure
>> whatever mail client you use for sending patches to send plain ASCII or
>> UTF-8 text, not quoted-printable ones? At least for me, so far having
>> shoveled in most of your patches, that encoding gets in the way of
>> running a pre-apply-test with plain "patch --dry-run -F0" on all
>> patches (from a script I use for committing). I can help myself with
>> plain "git am", but sooner or later some patch will end up having a
>> collision with something else having gone in, and then I'll need to
>> manually clean up after the failed / incomplete command.
>>
> 
> If I'm understanding correctly, it looks like git send-email's
> --transfer-encoding=8bit [1] should do what you're asking. I'll do this
> for future submissions.

I've done this for my latest series dropping pseries support, but it
seems the messages that reached the mailing list are still encoded as
quoted-printable, despite git reporting that they were sent as 8bit.

I suppose my SMTP server is mangling the encoding, then. I'll look into
this some more, but hopefully the quoted-printable patches I send in the
meantime won't pose too much of an inconvenience.

Thanks,
Shawn