[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Minios-devel] [UNIKRAFT PATCH 00/17] Prepare for enabling scheduling on KVM
Hey,
I just noticed that your patch series does not compile with nolibc which
is part of the Unikraft tree. I know you used newlibc for your tests but
can you confirm that this compiles also with the more restrictive
nolibc? We should not depend to any libc too much. The code should work
with many different libc's as possible.
I continue to give you comments on this patch series. You can put
everything together for v2.
Thanks,
Simon
On 27.03.2018 14:29, Costin Lupu wrote:
The current patch series include refactorizations that integrate functionality
for both Xen and KVM platforms. We are introducing common CPU related
definitions, trap handling and thread switching abstractizations. The
scheduling API is revisited for inlining with the platform changes. The current
changes are needed in order to efficiently reuse the scheduling functionality
on KVM as well.
Costin Lupu (17):
plat/common: Common x86 CPU definitions
plat/common: Common x86 segment descriptors definitions
plat/common: x86 hardware context definition
plat/common: Common x86 CPU interrupt flag handling
plat/common: Common x86 CPU functions
plat/common: Common x86 tracing functions
plat/common: Common x86 traps definitions and functions
plat/common: Add ukplat_lcpu_{enable,disable}_irq functions
plat/common: Halting functions
plat/common: Common x86 threading code
arch/x86_64: Add nop() macro
arch/x86_64: Add function for stack pointer retrieval
lib/uksched: Updates for inlining with plat/common changes
lib/ukschedcoop: Updates for inlining with uksched API changes
plat/xen: Remove events enabling from platform code
plat/xen: Add IRQ subsystem initialization function
lib/ukboot: Updates for inlining with platform and scheduling changes
include/uk/arch/thread.h | 53 -----
include/uk/arch/x86_64/lcpu.h | 40 +---
include/uk/plat/irq.h | 54 +++++
include/uk/plat/lcpu.h | 25 ++-
include/uk/plat/thread.h | 70 +++++-
lib/ukboot/boot.c | 18 +-
lib/uksched/include/uk/sched.h | 120 ++++++----
lib/uksched/include/uk/thread.h | 38 ++--
lib/uksched/sched.c | 123 ++++++++---
lib/uksched/thread.c | 75 ++++++-
lib/ukschedcoop/schedcoop.c | 45 ++--
plat/common/include/_time.h | 42 ++++
plat/common/include/cpu.h | 46 ++++
plat/common/include/sw_ctx.h | 56 +++++
plat/common/include/trace.h | 48 ++++
plat/common/include/x86/cpu.h | 109 +++++++++
plat/common/include/x86/cpu_defs.h | 76 +++++++
plat/common/include/x86/desc.h | 197 +++++++++++++++++
plat/common/include/x86/irq.h | 87 ++++++++
plat/common/include/x86/regs.h | 94 ++++++++
plat/common/include/x86/traps.h | 115 ++++++++++
plat/common/lcpu.c | 60 +++++
plat/common/sw_ctx.c | 97 ++++++++
plat/common/thread.c | 66 ++++++
plat/common/x86/cpu_native.c | 49 +++++
plat/common/x86/thread_start.S | 65 ++++++
plat/common/x86/trace.c | 90 ++++++++
plat/common/x86/traps.c | 115 ++++++++++
plat/kvm/Makefile.uk | 8 +
plat/kvm/include/kvm-x86/cpu_x86_64.h | 5 -
plat/kvm/include/kvm-x86/cpu_x86_64_defs.h | 46 +---
plat/kvm/shutdown.c | 2 +-
plat/kvm/x86/console.c | 2 +-
plat/kvm/x86/cpu_x86_64.c | 11 +-
plat/kvm/x86/entry64.S | 2 +-
plat/kvm/x86/lcpu.c | 6 -
plat/xen/Makefile.uk | 16 +-
plat/xen/events.c | 8 +
plat/xen/include/common/sched.h | 52 -----
plat/xen/include/xen-x86/arch_sched.h | 55 -----
plat/xen/include/xen-x86/cpu.h | 103 ---------
plat/xen/include/xen-x86/irq.h | 55 +----
plat/xen/include/xen-x86/os.h | 46 +---
plat/xen/include/xen-x86/traps.h | 23 +-
plat/xen/lcpu.c | 27 +--
plat/xen/sched.c | 106 ---------
plat/xen/thread.c | 66 ------
plat/xen/x86/arch_events.c | 2 +-
plat/xen/x86/arch_thread.c | 93 --------
plat/xen/x86/arch_time.c | 17 +-
plat/xen/x86/cpu_pv.c | 47 ++++
plat/xen/x86/entry64.S | 231 +++++++------------
plat/xen/x86/setup.c | 8 +-
plat/xen/x86/traps.c | 342 ++++++-----------------------
54 files changed, 2129 insertions(+), 1323 deletions(-)
delete mode 100644 include/uk/arch/thread.h
create mode 100644 include/uk/plat/irq.h
create mode 100644 plat/common/include/_time.h
create mode 100644 plat/common/include/cpu.h
create mode 100644 plat/common/include/sw_ctx.h
create mode 100644 plat/common/include/trace.h
create mode 100644 plat/common/include/x86/cpu.h
create mode 100644 plat/common/include/x86/cpu_defs.h
create mode 100644 plat/common/include/x86/desc.h
create mode 100644 plat/common/include/x86/irq.h
create mode 100644 plat/common/include/x86/regs.h
create mode 100644 plat/common/include/x86/traps.h
create mode 100644 plat/common/lcpu.c
create mode 100644 plat/common/sw_ctx.c
create mode 100644 plat/common/thread.c
create mode 100644 plat/common/x86/cpu_native.c
create mode 100644 plat/common/x86/thread_start.S
create mode 100644 plat/common/x86/trace.c
create mode 100644 plat/common/x86/traps.c
delete mode 100644 plat/xen/include/common/sched.h
delete mode 100644 plat/xen/include/xen-x86/arch_sched.h
delete mode 100644 plat/xen/include/xen-x86/cpu.h
delete mode 100644 plat/xen/sched.c
delete mode 100644 plat/xen/thread.c
delete mode 100644 plat/xen/x86/arch_thread.c
create mode 100644 plat/xen/x86/cpu_pv.c
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|