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

[Minios-devel] [UNIKRAFT PATCH 00/17] Prepare for enabling scheduling on KVM


  • To: minios-devel@xxxxxxxxxxxxx
  • From: Costin Lupu <costin.lupu@xxxxxxxxx>
  • Date: Tue, 27 Mar 2018 15:29:33 +0300
  • Cc: simon.kuenzer@xxxxxxxxx
  • Delivery-date: Tue, 27 Mar 2018 12:30:13 +0000
  • Ironport-phdr: 9a23:hbKgaxcWSQawvCc0saPHCnQDlGMj4u6mDksu8pMizoh2WeGdxcS6Zh7h7PlgxGXEQZ/co6odzbaO6Oa4ASQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTahb75+Ngm6oRnMvcQKnIVuLbo8xAHUqXVSYeRWwm1oJVOXnxni48q74YBu/SdNtf8/7sBMSar1cbg2QrxeFzQmLns65Nb3uhnZTAuA/WUTX2MLmRdVGQfF7RX6XpDssivms+d2xSeXMdHqQb0yRD+v6bpgRh31hycdLzM38H/ZhNF+gqxYpxysvABzz5LObY2JLvdyYr/RcNUHTmRBRMZRUClBD5uiYosIFOoBIedYr4/grFUIsBu+HRSsD/7oxzBUgX/2xrE60+UnEQ3c2AwgAsoOsGnPodrpL6ceS/i1zLTTwjnZdfNW3i7w5Y7VeR4iufGBRa98fMXMxUU1FA7Ijk+cpZL7Mz6XzOgAvXCX4/dvWO6ykWIqqAF8riKxysoihITFnJ8Zx1/a+Sh/3Y07P8e3SFRhbt6hCJZQsiaaOJZoTc46WGFovTo6yqUBuZ6mYCgG0JQnyADba/yAa4WI/BfjW/yQITd8nn5qZKm/iwyq8Ui90eLwTNO00FFSoipElNnDqGwN2gTO5sWIV/dx5ESs1DaV2wzN9O1JI1o4mKTDJ54k2LEwl54TsUrZHi/xnUX7lLOZdkI/+ui06uTnZK/qppuBN49slwHzKbghmtelDeQgLwgBRHKX+f671LH75032XK1KjuEqkqneqJ3aIMUbpqi4Aw9SyYYv8guwACm40NsGmXkKN1ZFeBOcj4j1IFHCOv/5Aum5g1i2lzdr3f/GNKX7AprRNnjDjKvhfbFl5k5HyQozyNdf55ROBrECPfL8REnxtd3GAR8jKAG0xfjoB8l51owEQm2DGLGWML6B+WOPs+cuJeiLf8oZtSjwL9Ah5uXyljkplFlberOmjrUNb3XtNfN9P0SfKV7xmspJRWwNpRY/SqrulUWfeTVIIW6vVeQm4WdoW8qdEY7fS9X10/S61yChE8gOaw==
  • List-id: Mini-os development list <minios-devel.lists.xenproject.org>

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

-- 
2.1.4


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.