All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 0/5] Split off mini-os to a separate tree
@ 2015-01-25 18:13 Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 1/5] Makefile: refactor build/clean/distclean targets Wei Liu
                   ` (6 more replies)
  0 siblings, 7 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:13 UTC (permalink / raw)
  To: xen-devel; +Cc: samuel.thibault, dgdegra, Wei Liu, stefano.stabellini

There has been increasing use of mini-os in unikernel world and basically
everybody has their own fork of mini-os. That way going foward is going
to cause fragmentation of the community.

We would like to split off mini-os tree so that everybody can upstream their
changes and work on a common code base. Later I would also like to setup
a proper push gate for mini-os.

Stubdom's build environment is known to be very fragile, so basically all the
real work is done in top level Makefile.

I use following runes to split off mini-os:

  git filter-branch --tag-name-filter cat \
    --subdirectory-filter extras/mini-os/ -- --all

  # There is already a tag name 4.3.0-rc2 which points to the same commit.
  git tag -d xen-4.3.0-rc2

  # Add xen- prefix to all tags
  for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done

  git gc --aggressive
  
The tree can be found at:
  git://xenbits.xen.org/people/liuw/mini-os.git master

Note that mini-os cannot build on its own due to the limitation of it's own
build system. Splitting it off it's the first step towards fixing that problem

Wei.

Wei Liu (5):
  Makefile: refactor build/clean/distclean targets
  stubdom: don't look for mini-os source file during configure
  git-checkout.sh: use "mkdir -p"
  Makefile: stubdom targets now depend on mini-os target
  Remove in-tree mini-os directory

 .gitignore                                         |    3 +
 Config.mk                                          |    3 +
 Makefile                                           |   60 +-
 Makefile.mini-os                                   |   15 +
 extras/mini-os/COPYING                             |   36 -
 extras/mini-os/Config.mk                           |   57 -
 extras/mini-os/Makefile                            |  226 ---
 extras/mini-os/README                              |   46 -
 extras/mini-os/app.lds                             |   11 -
 extras/mini-os/arch/arm/arm32.S                    |  294 ----
 extras/mini-os/arch/arm/events.c                   |   31 -
 extras/mini-os/arch/arm/hypercalls32.S             |   64 -
 extras/mini-os/arch/arm/minios-arm32.lds           |   83 --
 extras/mini-os/arch/arm/mm.c                       |  139 --
 extras/mini-os/arch/arm/panic.c                    |   98 --
 extras/mini-os/arch/arm/sched.c                    |   47 -
 extras/mini-os/arch/arm/setup.c                    |  119 --
 extras/mini-os/arch/arm/time.c                     |  136 --
 extras/mini-os/arch/x86/Makefile                   |   31 -
 extras/mini-os/arch/x86/arch.mk                    |   22 -
 extras/mini-os/arch/x86/events.c                   |   35 -
 extras/mini-os/arch/x86/ioremap.c                  |   75 -
 extras/mini-os/arch/x86/iorw.c                     |   35 -
 extras/mini-os/arch/x86/minios-x86_32.lds          |   74 -
 extras/mini-os/arch/x86/minios-x86_64.lds          |   74 -
 extras/mini-os/arch/x86/mm.c                       |  957 ------------
 extras/mini-os/arch/x86/sched.c                    |  139 --
 extras/mini-os/arch/x86/setup.c                    |  168 ---
 extras/mini-os/arch/x86/time.c                     |  238 ---
 extras/mini-os/arch/x86/traps.c                    |  333 -----
 extras/mini-os/arch/x86/x86_32.S                   |  305 ----
 extras/mini-os/arch/x86/x86_64.S                   |  383 -----
 extras/mini-os/blkfront.c                          |  736 ----------
 extras/mini-os/console/console.c                   |  164 ---
 extras/mini-os/console/console.h                   |    2 -
 extras/mini-os/console/xenbus.c                    |  195 ---
 extras/mini-os/console/xencons_ring.c              |  195 ---
 extras/mini-os/daytime.c                           |   67 -
 extras/mini-os/domain_config                       |   19 -
 extras/mini-os/events.c                            |  269 ----
 extras/mini-os/fbfront.c                           |  710 ---------
 extras/mini-os/gntmap.c                            |  250 ----
 extras/mini-os/gnttab.c                            |  196 ---
 extras/mini-os/hypervisor.c                        |  132 --
 extras/mini-os/include/arch/cc.h                   |   87 --
 extras/mini-os/include/arch/perf.h                 |   15 -
 extras/mini-os/include/arch/sys_arch.h             |   35 -
 extras/mini-os/include/arm/arch_endian.h           |    7 -
 extras/mini-os/include/arm/arch_limits.h           |    9 -
 extras/mini-os/include/arm/arch_mm.h               |   38 -
 extras/mini-os/include/arm/arch_sched.h            |   19 -
 extras/mini-os/include/arm/arch_spinlock.h         |   36 -
 extras/mini-os/include/arm/arm32/arch_wordsize.h   |    1 -
 extras/mini-os/include/arm/gic.h                   |    1 -
 extras/mini-os/include/arm/hypercall-arm.h         |   98 --
 extras/mini-os/include/arm/os.h                    |  216 ---
 extras/mini-os/include/arm/traps.h                 |   20 -
 extras/mini-os/include/blkfront.h                  |   54 -
 extras/mini-os/include/byteorder.h                 |   36 -
 extras/mini-os/include/byteswap.h                  |   39 -
 extras/mini-os/include/compiler.h                  |   10 -
 extras/mini-os/include/console.h                   |   89 --
 extras/mini-os/include/ctype.h                     |   60 -
 extras/mini-os/include/endian.h                    |   19 -
 extras/mini-os/include/err.h                       |   31 -
 extras/mini-os/include/errno-base.h                |   39 -
 extras/mini-os/include/errno.h                     |  122 --
 extras/mini-os/include/events.h                    |   59 -
 extras/mini-os/include/fbfront.h                   |   46 -
 extras/mini-os/include/fcntl.h                     |   99 --
 extras/mini-os/include/gntmap.h                    |   35 -
 extras/mini-os/include/gnttab.h                    |   17 -
 extras/mini-os/include/hypervisor.h                |   48 -
 extras/mini-os/include/ioremap.h                   |   33 -
 extras/mini-os/include/iorw.h                      |   16 -
 extras/mini-os/include/kernel.h                    |    9 -
 extras/mini-os/include/lib-gpl.h                   |   59 -
 extras/mini-os/include/lib.h                       |  230 ---
 extras/mini-os/include/linux/types.h               |    5 -
 extras/mini-os/include/lwipopts.h                  |   23 -
 extras/mini-os/include/mm.h                        |   82 --
 extras/mini-os/include/netfront.h                  |   24 -
 extras/mini-os/include/pcifront.h                  |   29 -
 extras/mini-os/include/posix/arpa/inet.h           |    7 -
 extras/mini-os/include/posix/dirent.h              |   24 -
 extras/mini-os/include/posix/err.h                 |   15 -
 extras/mini-os/include/posix/fcntl.h               |   11 -
 extras/mini-os/include/posix/limits.h              |   48 -
 extras/mini-os/include/posix/net/if.h              |   85 --
 extras/mini-os/include/posix/netdb.h               |    9 -
 extras/mini-os/include/posix/netinet/in.h          |    7 -
 extras/mini-os/include/posix/netinet/tcp.h         |    6 -
 extras/mini-os/include/posix/poll.h                |    1 -
 extras/mini-os/include/posix/pthread.h             |   64 -
 extras/mini-os/include/posix/signal.h              |   10 -
 extras/mini-os/include/posix/stdlib.h              |    8 -
 extras/mini-os/include/posix/strings.h             |   12 -
 extras/mini-os/include/posix/sys/ioctl.h           |   16 -
 extras/mini-os/include/posix/sys/mman.h            |   22 -
 extras/mini-os/include/posix/sys/poll.h            |   79 -
 extras/mini-os/include/posix/sys/select.h          |    7 -
 extras/mini-os/include/posix/sys/socket.h          |   31 -
 extras/mini-os/include/posix/sys/stat.h            |    7 -
 extras/mini-os/include/posix/syslog.h              |   37 -
 extras/mini-os/include/posix/termios.h             |   87 --
 extras/mini-os/include/posix/time.h                |   11 -
 extras/mini-os/include/posix/unistd.h              |   16 -
 extras/mini-os/include/sched.h                     |   55 -
 extras/mini-os/include/semaphore.h                 |  110 --
 extras/mini-os/include/spinlock.h                  |   55 -
 extras/mini-os/include/sys/lock.h                  |   52 -
 extras/mini-os/include/sys/time.h                  |   47 -
 extras/mini-os/include/time.h                      |   63 -
 extras/mini-os/include/tpm_tis.h                   |   60 -
 extras/mini-os/include/tpmback.h                   |  104 --
 extras/mini-os/include/tpmfront.h                  |   97 --
 extras/mini-os/include/types.h                     |   74 -
 extras/mini-os/include/wait.h                      |  105 --
 extras/mini-os/include/waittypes.h                 |   32 -
 extras/mini-os/include/x86/arch_endian.h           |    7 -
 extras/mini-os/include/x86/arch_limits.h           |   20 -
 extras/mini-os/include/x86/arch_mm.h               |  233 ---
 extras/mini-os/include/x86/arch_sched.h            |   25 -
 extras/mini-os/include/x86/arch_spinlock.h         |   94 --
 extras/mini-os/include/x86/os.h                    |  572 --------
 extras/mini-os/include/x86/traps.h                 |   78 -
 extras/mini-os/include/x86/x86_32/arch_wordsize.h  |    1 -
 .../mini-os/include/x86/x86_32/hypercall-x86_32.h  |  337 -----
 extras/mini-os/include/x86/x86_64/arch_wordsize.h  |    2 -
 .../mini-os/include/x86/x86_64/hypercall-x86_64.h  |  344 -----
 extras/mini-os/include/xenbus.h                    |  120 --
 extras/mini-os/include/xmalloc.h                   |   44 -
 extras/mini-os/kernel.c                            |  198 ---
 extras/mini-os/lib/ctype.c                         |   29 -
 extras/mini-os/lib/math.c                          |  426 ------
 extras/mini-os/lib/printf.c                        |  786 ----------
 extras/mini-os/lib/stack_chk_fail.c                |    8 -
 extras/mini-os/lib/string.c                        |  228 ---
 extras/mini-os/lib/sys.c                           | 1550 --------------------
 extras/mini-os/lib/xmalloc.c                       |  319 ----
 extras/mini-os/lib/xs.c                            |  194 ---
 extras/mini-os/lock.c                              |  112 --
 extras/mini-os/lwip-arch.c                         |  293 ----
 extras/mini-os/lwip-net.c                          |  386 -----
 extras/mini-os/main.c                              |  193 ---
 extras/mini-os/minios.mk                           |   76 -
 extras/mini-os/mm.c                                |  441 ------
 extras/mini-os/netfront.c                          |  675 ---------
 extras/mini-os/pcifront.c                          |  616 --------
 extras/mini-os/sched.c                             |  304 ----
 extras/mini-os/test.c                              |  577 --------
 extras/mini-os/tpm_tis.c                           | 1367 -----------------
 extras/mini-os/tpmback.c                           | 1136 --------------
 extras/mini-os/tpmfront.c                          |  631 --------
 extras/mini-os/xenbus/xenbus.c                     |  870 -----------
 scripts/git-checkout.sh                            |    2 +-
 stubdom/configure.ac                               |    1 -
 tools/misc/mktarball                               |    4 +-
 158 files changed, 77 insertions(+), 23863 deletions(-)
 create mode 100644 Makefile.mini-os
 delete mode 100644 extras/mini-os/COPYING
 delete mode 100644 extras/mini-os/Config.mk
 delete mode 100644 extras/mini-os/Makefile
 delete mode 100644 extras/mini-os/README
 delete mode 100644 extras/mini-os/app.lds
 delete mode 100644 extras/mini-os/arch/arm/arm32.S
 delete mode 100644 extras/mini-os/arch/arm/events.c
 delete mode 100644 extras/mini-os/arch/arm/hypercalls32.S
 delete mode 100755 extras/mini-os/arch/arm/minios-arm32.lds
 delete mode 100644 extras/mini-os/arch/arm/mm.c
 delete mode 100644 extras/mini-os/arch/arm/panic.c
 delete mode 100644 extras/mini-os/arch/arm/sched.c
 delete mode 100644 extras/mini-os/arch/arm/setup.c
 delete mode 100644 extras/mini-os/arch/arm/time.c
 delete mode 100644 extras/mini-os/arch/x86/Makefile
 delete mode 100644 extras/mini-os/arch/x86/arch.mk
 delete mode 100644 extras/mini-os/arch/x86/events.c
 delete mode 100644 extras/mini-os/arch/x86/ioremap.c
 delete mode 100644 extras/mini-os/arch/x86/iorw.c
 delete mode 100644 extras/mini-os/arch/x86/minios-x86_32.lds
 delete mode 100644 extras/mini-os/arch/x86/minios-x86_64.lds
 delete mode 100644 extras/mini-os/arch/x86/mm.c
 delete mode 100644 extras/mini-os/arch/x86/sched.c
 delete mode 100644 extras/mini-os/arch/x86/setup.c
 delete mode 100644 extras/mini-os/arch/x86/time.c
 delete mode 100644 extras/mini-os/arch/x86/traps.c
 delete mode 100644 extras/mini-os/arch/x86/x86_32.S
 delete mode 100644 extras/mini-os/arch/x86/x86_64.S
 delete mode 100644 extras/mini-os/blkfront.c
 delete mode 100644 extras/mini-os/console/console.c
 delete mode 100644 extras/mini-os/console/console.h
 delete mode 100644 extras/mini-os/console/xenbus.c
 delete mode 100644 extras/mini-os/console/xencons_ring.c
 delete mode 100644 extras/mini-os/daytime.c
 delete mode 100644 extras/mini-os/domain_config
 delete mode 100644 extras/mini-os/events.c
 delete mode 100644 extras/mini-os/fbfront.c
 delete mode 100644 extras/mini-os/gntmap.c
 delete mode 100644 extras/mini-os/gnttab.c
 delete mode 100644 extras/mini-os/hypervisor.c
 delete mode 100644 extras/mini-os/include/arch/cc.h
 delete mode 100644 extras/mini-os/include/arch/perf.h
 delete mode 100644 extras/mini-os/include/arch/sys_arch.h
 delete mode 100644 extras/mini-os/include/arm/arch_endian.h
 delete mode 100644 extras/mini-os/include/arm/arch_limits.h
 delete mode 100644 extras/mini-os/include/arm/arch_mm.h
 delete mode 100644 extras/mini-os/include/arm/arch_sched.h
 delete mode 100755 extras/mini-os/include/arm/arch_spinlock.h
 delete mode 100644 extras/mini-os/include/arm/arm32/arch_wordsize.h
 delete mode 100644 extras/mini-os/include/arm/gic.h
 delete mode 100644 extras/mini-os/include/arm/hypercall-arm.h
 delete mode 100644 extras/mini-os/include/arm/os.h
 delete mode 100644 extras/mini-os/include/arm/traps.h
 delete mode 100644 extras/mini-os/include/blkfront.h
 delete mode 100644 extras/mini-os/include/byteorder.h
 delete mode 100644 extras/mini-os/include/byteswap.h
 delete mode 100644 extras/mini-os/include/compiler.h
 delete mode 100644 extras/mini-os/include/console.h
 delete mode 100644 extras/mini-os/include/ctype.h
 delete mode 100644 extras/mini-os/include/endian.h
 delete mode 100644 extras/mini-os/include/err.h
 delete mode 100644 extras/mini-os/include/errno-base.h
 delete mode 100644 extras/mini-os/include/errno.h
 delete mode 100644 extras/mini-os/include/events.h
 delete mode 100644 extras/mini-os/include/fbfront.h
 delete mode 100644 extras/mini-os/include/fcntl.h
 delete mode 100644 extras/mini-os/include/gntmap.h
 delete mode 100644 extras/mini-os/include/gnttab.h
 delete mode 100644 extras/mini-os/include/hypervisor.h
 delete mode 100644 extras/mini-os/include/ioremap.h
 delete mode 100644 extras/mini-os/include/iorw.h
 delete mode 100644 extras/mini-os/include/kernel.h
 delete mode 100644 extras/mini-os/include/lib-gpl.h
 delete mode 100644 extras/mini-os/include/lib.h
 delete mode 100644 extras/mini-os/include/linux/types.h
 delete mode 100644 extras/mini-os/include/lwipopts.h
 delete mode 100644 extras/mini-os/include/mm.h
 delete mode 100644 extras/mini-os/include/netfront.h
 delete mode 100644 extras/mini-os/include/pcifront.h
 delete mode 100644 extras/mini-os/include/posix/arpa/inet.h
 delete mode 100644 extras/mini-os/include/posix/dirent.h
 delete mode 100644 extras/mini-os/include/posix/err.h
 delete mode 100644 extras/mini-os/include/posix/fcntl.h
 delete mode 100644 extras/mini-os/include/posix/limits.h
 delete mode 100644 extras/mini-os/include/posix/net/if.h
 delete mode 100644 extras/mini-os/include/posix/netdb.h
 delete mode 100644 extras/mini-os/include/posix/netinet/in.h
 delete mode 100644 extras/mini-os/include/posix/netinet/tcp.h
 delete mode 100644 extras/mini-os/include/posix/poll.h
 delete mode 100644 extras/mini-os/include/posix/pthread.h
 delete mode 100644 extras/mini-os/include/posix/signal.h
 delete mode 100644 extras/mini-os/include/posix/stdlib.h
 delete mode 100644 extras/mini-os/include/posix/strings.h
 delete mode 100644 extras/mini-os/include/posix/sys/ioctl.h
 delete mode 100644 extras/mini-os/include/posix/sys/mman.h
 delete mode 100644 extras/mini-os/include/posix/sys/poll.h
 delete mode 100644 extras/mini-os/include/posix/sys/select.h
 delete mode 100644 extras/mini-os/include/posix/sys/socket.h
 delete mode 100644 extras/mini-os/include/posix/sys/stat.h
 delete mode 100644 extras/mini-os/include/posix/syslog.h
 delete mode 100644 extras/mini-os/include/posix/termios.h
 delete mode 100644 extras/mini-os/include/posix/time.h
 delete mode 100644 extras/mini-os/include/posix/unistd.h
 delete mode 100644 extras/mini-os/include/sched.h
 delete mode 100644 extras/mini-os/include/semaphore.h
 delete mode 100644 extras/mini-os/include/spinlock.h
 delete mode 100644 extras/mini-os/include/sys/lock.h
 delete mode 100644 extras/mini-os/include/sys/time.h
 delete mode 100644 extras/mini-os/include/time.h
 delete mode 100644 extras/mini-os/include/tpm_tis.h
 delete mode 100644 extras/mini-os/include/tpmback.h
 delete mode 100644 extras/mini-os/include/tpmfront.h
 delete mode 100644 extras/mini-os/include/types.h
 delete mode 100644 extras/mini-os/include/wait.h
 delete mode 100644 extras/mini-os/include/waittypes.h
 delete mode 100644 extras/mini-os/include/x86/arch_endian.h
 delete mode 100644 extras/mini-os/include/x86/arch_limits.h
 delete mode 100644 extras/mini-os/include/x86/arch_mm.h
 delete mode 100644 extras/mini-os/include/x86/arch_sched.h
 delete mode 100644 extras/mini-os/include/x86/arch_spinlock.h
 delete mode 100644 extras/mini-os/include/x86/os.h
 delete mode 100644 extras/mini-os/include/x86/traps.h
 delete mode 100644 extras/mini-os/include/x86/x86_32/arch_wordsize.h
 delete mode 100644 extras/mini-os/include/x86/x86_32/hypercall-x86_32.h
 delete mode 100644 extras/mini-os/include/x86/x86_64/arch_wordsize.h
 delete mode 100644 extras/mini-os/include/x86/x86_64/hypercall-x86_64.h
 delete mode 100644 extras/mini-os/include/xenbus.h
 delete mode 100644 extras/mini-os/include/xmalloc.h
 delete mode 100644 extras/mini-os/kernel.c
 delete mode 100644 extras/mini-os/lib/ctype.c
 delete mode 100644 extras/mini-os/lib/math.c
 delete mode 100644 extras/mini-os/lib/printf.c
 delete mode 100644 extras/mini-os/lib/stack_chk_fail.c
 delete mode 100644 extras/mini-os/lib/string.c
 delete mode 100644 extras/mini-os/lib/sys.c
 delete mode 100644 extras/mini-os/lib/xmalloc.c
 delete mode 100644 extras/mini-os/lib/xs.c
 delete mode 100644 extras/mini-os/lock.c
 delete mode 100644 extras/mini-os/lwip-arch.c
 delete mode 100644 extras/mini-os/lwip-net.c
 delete mode 100644 extras/mini-os/main.c
 delete mode 100644 extras/mini-os/minios.mk
 delete mode 100644 extras/mini-os/mm.c
 delete mode 100644 extras/mini-os/netfront.c
 delete mode 100644 extras/mini-os/pcifront.c
 delete mode 100644 extras/mini-os/sched.c
 delete mode 100644 extras/mini-os/test.c
 delete mode 100644 extras/mini-os/tpm_tis.c
 delete mode 100644 extras/mini-os/tpmback.c
 delete mode 100644 extras/mini-os/tpmfront.c
 delete mode 100644 extras/mini-os/xenbus/xenbus.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH RFC 1/5] Makefile: refactor build/clean/distclean targets
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
@ 2015-01-25 18:13 ` Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 2/5] stubdom: don't look for mini-os source file during configure Wei Liu
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:13 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	samuel.thibault, dgdegra

Factor out per-subsystem build/clean/distclean-% targets. Note that
build-stubdom depends on build-tools -- AFAICT build-stubdom fails
without building tools first.

This is in preparation to make *-stubdom depend on a target to fetch
mini-os from external tree.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Makefile | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 6e9a4c7..8196e25 100644
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,9 @@ all: dist
 SUBSYSTEMS?=xen tools stubdom docs
 TARGS_DIST=$(patsubst %, dist-%, $(SUBSYSTEMS))
 TARGS_INSTALL=$(patsubst %, install-%, $(SUBSYSTEMS))
+TARGS_BUILD=$(patsubst %, build-%, $(SUBSYSTEMS))
+TARGS_CLEAN=$(patsubst %, clean-%, $(SUBSYSTEMS))
+TARGS_DISTCLEAN=$(patsubst %, distclean-%, $(SUBSYSTEMS))
 
 export XEN_ROOT=$(CURDIR)
 include Config.mk
@@ -23,13 +26,25 @@ export DESTDIR
 install: $(TARGS_INSTALL)
 
 .PHONY: build
-build:
+build: $(TARGS_BUILD)
+
+.PHONY: build-xen
+build-xen:
 	$(MAKE) -C xen build
+
+.PHONY: build-tools
+build-tools:
 	$(MAKE) -C tools build
+
+.PHONY: build-stubdom
+build-stubdom: build-tools
 	$(MAKE) -C stubdom build
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom pv-grub
 endif
+
+.PHONY: build-docs
+build-docs:
 	$(MAKE) -C docs build
 
 # The test target is for unit tests that can run without an installation.  Of
@@ -135,28 +150,52 @@ src-tarball: subtree-force-update-all
 	bash ./tools/misc/mktarball $(XEN_ROOT) $$(git describe)
 
 .PHONY: clean
-clean::
+clean: $(TARGS_CLEAN)
+
+.PHONY: clean-xen
+clean-xen:
 	$(MAKE) -C xen clean
+
+.PHONY: clean-tools
+clean-tools:
 	$(MAKE) -C tools clean
+
+.PHONY: clean-stubdom
+clean-stubdom:
 	$(MAKE) -C stubdom crossclean
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom crossclean
 endif
+
+.PHONY: clean-docs
+clean-docs:
 	$(MAKE) -C docs clean
 
 # clean, but blow away tarballs
 .PHONY: distclean
-distclean:
+distclean: $(TARGS_DISTCLEAN)
 	rm -f config/Toplevel.mk
+	rm -rf dist
+	rm -rf config.log config.status config.cache autom4te.cache
+
+.PHONY: distclean-xen
+distclean-xen:
 	$(MAKE) -C xen distclean
+
+.PHONY: distclean-tools
+distclean-tools:
 	$(MAKE) -C tools distclean
+
+.PHONY: distclean-stubdom
+distclean-stubdom:
 	$(MAKE) -C stubdom distclean
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom distclean
 endif
+
+.PHONY: distclean-docs
+distclean-docs:
 	$(MAKE) -C docs distclean
-	rm -rf dist
-	rm -rf config.log config.status config.cache autom4te.cache
 
 # Linux name for GNU distclean
 .PHONY: mrproper
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH RFC 2/5] stubdom: don't look for mini-os source file during configure
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 1/5] Makefile: refactor build/clean/distclean targets Wei Liu
@ 2015-01-25 18:13 ` Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 3/5] git-checkout.sh: use "mkdir -p" Wei Liu
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:13 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	samuel.thibault, dgdegra

Mini-os source code will be fetched during build.

Please rerun autogen.sh after applying this patch.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
 stubdom/configure.ac | 1 -
 1 file changed, 1 deletion(-)

diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index 6468203..424b24f 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -4,7 +4,6 @@
 AC_PREREQ([2.67])
 AC_INIT([Xen Hypervisor Stub Domains], m4_esyscmd([../version.sh ../xen/Makefile]),
     [xen-devel@lists.xen.org], [xen], [http://www.xen.org/])
-AC_CONFIG_SRCDIR([../extras/mini-os/kernel.c])
 AC_CONFIG_FILES([../config/Stubdom.mk])
 AC_CONFIG_AUX_DIR([../])
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH RFC 3/5] git-checkout.sh: use "mkdir -p"
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 1/5] Makefile: refactor build/clean/distclean targets Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 2/5] stubdom: don't look for mini-os source file during configure Wei Liu
@ 2015-01-25 18:13 ` Wei Liu
  2015-01-25 18:13 ` [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target Wei Liu
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:13 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	samuel.thibault, dgdegra

Otherwise mkdir extras/mini-os fails because extras doesn't exist.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
 scripts/git-checkout.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh
index 15b3ce9..20ae31f 100755
--- a/scripts/git-checkout.sh
+++ b/scripts/git-checkout.sh
@@ -13,7 +13,7 @@ set -e
 
 if test \! -d $DIR-remote; then
 	rm -rf $DIR-remote $DIR-remote.tmp
-	mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp
+	mkdir -p $DIR-remote.tmp; rmdir $DIR-remote.tmp
 	$GIT clone $TREE $DIR-remote.tmp
 	if test "$TAG" ; then
 		cd $DIR-remote.tmp
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
                   ` (2 preceding siblings ...)
  2015-01-25 18:13 ` [PATCH RFC 3/5] git-checkout.sh: use "mkdir -p" Wei Liu
@ 2015-01-25 18:13 ` Wei Liu
  2015-01-26 10:43   ` Jan Beulich
  2015-01-25 18:13 ` [PATCH RFC 5/5] Remove in-tree mini-os directory Wei Liu
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:13 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	samuel.thibault, dgdegra

Provide mini-os url and revision in Config.mk

Introduce Makefile.mini-os which contains mini-os specific targets.
Target mini-os-dir clones mini-os tree from upstream.

Make various stubdom targets depend on mini-os-dir target. Make
subtree-force-update{,-all} depend on mini-os-dir-force-update. Also
make mktarball script generate mini-os archive.

Original mini-os directory is renamed to mini-os-intree to help reduce
patch length. That directory will be deleted in a separate patch.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
 .gitignore                                              |  3 +++
 Config.mk                                               |  3 +++
 Makefile                                                | 17 +++++++++++------
 Makefile.mini-os                                        | 15 +++++++++++++++
[file rename output trimmed]
 tools/misc/mktarball                                    |  4 +++-
 156 files changed, 35 insertions(+), 7 deletions(-)
 create mode 100644 Makefile.mini-os
[file rename output trimmed]

diff --git a/.gitignore b/.gitignore
index 33c2ca0..8d4bf4a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -257,6 +257,9 @@ unmodified_drivers/linux-2.6/*.ko
 unmodified_drivers/linux-2.6/*.mod.c
 LibVNCServer*
 
+extras/mini-os-remote
+extras/mini-os
+
 tools/qemu-xen-dir-remote
 tools/qemu-xen-dir
 
diff --git a/Config.mk b/Config.mk
index 6324237..3473847 100644
--- a/Config.mk
+++ b/Config.mk
@@ -245,13 +245,16 @@ OVMF_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/ovmf.git
 QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git
 QEMU_TRADITIONAL_URL ?= http://xenbits.xen.org/git-http/qemu-xen-unstable.git
 SEABIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/seabios.git
+MINI_OS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/mini-os.git
 else
 OVMF_UPSTREAM_URL ?= git://xenbits.xen.org/ovmf.git
 QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
 QEMU_TRADITIONAL_URL ?= git://xenbits.xen.org/qemu-xen-unstable.git
 SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
+MINI_OS_UPSTREAM_URL ?= git://xenbits.xen.org/git-http/mini-os.git
 endif
 OVMF_UPSTREAM_REVISION ?= 447d264115c476142f884af0be287622cd244423
+MINI_OS_UPSTREAM_REVISION ?= f354651f364dc86e316b8459e092d492bc2d1923
 QEMU_UPSTREAM_REVISION ?= master
 SEABIOS_UPSTREAM_REVISION ?= rel-1.7.5
 # Thu May 22 16:59:16 2014 -0400
diff --git a/Makefile b/Makefile
index 8196e25..c148118 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,9 @@ TARGS_DISTCLEAN=$(patsubst %, distclean-%, $(SUBSYSTEMS))
 export XEN_ROOT=$(CURDIR)
 include Config.mk
 
+# mini-os related targets
+include Makefile.mini-os
+
 SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH))
 export XEN_TARGET_ARCH SUBARCH
 export DESTDIR
@@ -37,7 +40,7 @@ build-tools:
 	$(MAKE) -C tools build
 
 .PHONY: build-stubdom
-build-stubdom: build-tools
+build-stubdom: mini-os-dir build-tools
 	$(MAKE) -C stubdom build
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom pv-grub
@@ -84,7 +87,7 @@ install-tools:
 	$(MAKE) -C tools install
 
 .PHONY: install-stubdom
-install-stubdom: install-tools
+install-stubdom: mini-os-dir install-tools
 	$(MAKE) -C stubdom install
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub
@@ -125,11 +128,11 @@ rpmball: dist
 	bash ./tools/misc/mkrpm $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory)
 
 .PHONY: subtree-force-update
-subtree-force-update:
+subtree-force-update: mini-os-dir-force-update
 	$(MAKE) -C tools subtree-force-update
 
 .PHONY: subtree-force-update-all
-subtree-force-update-all:
+subtree-force-update-all: mini-os-dir-force-update
 	$(MAKE) -C tools subtree-force-update-all
 
 # Make a source tarball, including qemu sub-trees.
@@ -161,7 +164,7 @@ clean-tools:
 	$(MAKE) -C tools clean
 
 .PHONY: clean-stubdom
-clean-stubdom:
+clean-stubdom: mini-os-dir
 	$(MAKE) -C stubdom crossclean
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom crossclean
@@ -187,11 +190,13 @@ distclean-tools:
 	$(MAKE) -C tools distclean
 
 .PHONY: distclean-stubdom
-distclean-stubdom:
+distclean-stubdom: mini-os-dir
 	$(MAKE) -C stubdom distclean
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom distclean
 endif
+	rm -rf extras/mini-os
+	rm -rf extras/mini-os-remote
 
 .PHONY: distclean-docs
 distclean-docs:
diff --git a/Makefile.mini-os b/Makefile.mini-os
new file mode 100644
index 0000000..d87aced
--- /dev/null
+++ b/Makefile.mini-os
@@ -0,0 +1,15 @@
+.PHONY: mini-os-dir
+mini-os-dir:
+	GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh \
+		   $(MINI_OS_UPSTREAM_URL) \
+		   $(MINI_OS_UPSTREAM_REVISION) \
+		   $(XEN_ROOT)/extras/mini-os
+
+.PHONY: mini-os-dir-force-update
+mini-os-dir-force-update: mini-os-dir
+	set -ex; \
+	if [ "$(MINI_OS_UPSTREAM_REVISION)" ]; then \
+		cd extras/mini-os-remote; \
+		$(GIT) fetch origin; \
+		$(GIT) reset --hard $(MINI_OS_UPSTREAM_REVISION); \
+	fi


[file rename output trimmed]


diff --git a/tools/misc/mktarball b/tools/misc/mktarball
index aad1096..73282b5 100755
--- a/tools/misc/mktarball
+++ b/tools/misc/mktarball
@@ -6,7 +6,7 @@
 set -ex

 function git_archive_into {
-    mkdir "$2"
+    mkdir -p "$2"

     git --git-dir="$1"/.git \
        archive --format=tar HEAD | \
@@ -33,6 +33,8 @@ git_archive_into $xen_root/tools/qemu-xen-dir-remote $tdir/xen-$desc/tools/qemu-

 git_archive_into $xen_root/tools/qemu-xen-traditional-dir-remote $tdir/xen-$desc/tools/qemu-xen-traditional

+git_archive_into $xen_root/extras/mini-os-remote $tdir/xen-$desc/extras/mini-os
+
 GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc

 echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH RFC 5/5] Remove in-tree mini-os directory
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
                   ` (3 preceding siblings ...)
  2015-01-25 18:13 ` [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target Wei Liu
@ 2015-01-25 18:13 ` Wei Liu
  2015-01-25 18:25 ` [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
  2015-01-27 12:18 ` Samuel Thibault
  6 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:13 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	samuel.thibault, dgdegra

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>

[output trimmed]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
                   ` (4 preceding siblings ...)
  2015-01-25 18:13 ` [PATCH RFC 5/5] Remove in-tree mini-os directory Wei Liu
@ 2015-01-25 18:25 ` Wei Liu
  2015-01-26  9:53   ` Thomas Leonard
  2015-01-26 15:44   ` Ian Jackson
  2015-01-27 12:18 ` Samuel Thibault
  6 siblings, 2 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-25 18:25 UTC (permalink / raw)
  To: xen-devel
  Cc: talex5, Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	pooka, quan.xu, samuel.thibault, dgdegra

Cc Ian and Ian and some folks who might be interested in this work.

On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
> There has been increasing use of mini-os in unikernel world and basically
> everybody has their own fork of mini-os. That way going foward is going
> to cause fragmentation of the community.
> 
> We would like to split off mini-os tree so that everybody can upstream their
> changes and work on a common code base. Later I would also like to setup
> a proper push gate for mini-os.
> 
> Stubdom's build environment is known to be very fragile, so basically all the
> real work is done in top level Makefile.
> 
> I use following runes to split off mini-os:
> 
>   git filter-branch --tag-name-filter cat \
>     --subdirectory-filter extras/mini-os/ -- --all
> 
>   # There is already a tag name 4.3.0-rc2 which points to the same commit.
>   git tag -d xen-4.3.0-rc2
> 
>   # Add xen- prefix to all tags
>   for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
> 
>   git gc --aggressive
>   
> The tree can be found at:
>   git://xenbits.xen.org/people/liuw/mini-os.git master
> 
> Note that mini-os cannot build on its own due to the limitation of it's own
> build system. Splitting it off it's the first step towards fixing that problem
> 
> Wei.
> 
> Wei Liu (5):
>   Makefile: refactor build/clean/distclean targets
>   stubdom: don't look for mini-os source file during configure
>   git-checkout.sh: use "mkdir -p"
>   Makefile: stubdom targets now depend on mini-os target
>   Remove in-tree mini-os directory
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-25 18:25 ` [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
@ 2015-01-26  9:53   ` Thomas Leonard
  2015-01-26 10:57     ` Anil Madhavapeddy
                       ` (4 more replies)
  2015-01-26 15:44   ` Ian Jackson
  1 sibling, 5 replies; 34+ messages in thread
From: Thomas Leonard @ 2015-01-26  9:53 UTC (permalink / raw)
  To: Wei Liu
  Cc: Ian Campbell, Stefano Stabellini, Anil Madhavapeddy, Ian Jackson,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

[ Cc += Anil ]

On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
> Cc Ian and Ian and some folks who might be interested in this work.
>
> On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
>> There has been increasing use of mini-os in unikernel world and basically
>> everybody has their own fork of mini-os. That way going foward is going
>> to cause fragmentation of the community.
>>
>> We would like to split off mini-os tree so that everybody can upstream their
>> changes and work on a common code base. Later I would also like to setup
>> a proper push gate for mini-os.
>>
>> Stubdom's build environment is known to be very fragile, so basically all the
>> real work is done in top level Makefile.
>>
>> I use following runes to split off mini-os:
>>
>>   git filter-branch --tag-name-filter cat \
>>     --subdirectory-filter extras/mini-os/ -- --all
>>
>>   # There is already a tag name 4.3.0-rc2 which points to the same commit.
>>   git tag -d xen-4.3.0-rc2
>>
>>   # Add xen- prefix to all tags
>>   for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
>>
>>   git gc --aggressive
>>
>> The tree can be found at:
>>   git://xenbits.xen.org/people/liuw/mini-os.git master
>>
>> Note that mini-os cannot build on its own due to the limitation of it's own
>> build system. Splitting it off it's the first step towards fixing that problem

In case it's useful: for the standalone version of Mini-OS used by
Mirage, I had to include these directories too:

1. xen/include/public
2. xen/common/libfdt
3. xen/include/xen/libfdt
4. config

( https://github.com/talex5/xen/tree/minios-releases )

Will there be a separate mailing list for Mini-OS? That would be very
useful for people who don't want to keep up with xen-devel.

Thanks!


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target
  2015-01-25 18:13 ` [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target Wei Liu
@ 2015-01-26 10:43   ` Jan Beulich
  2015-01-26 10:54     ` Wei Liu
  0 siblings, 1 reply; 34+ messages in thread
From: Jan Beulich @ 2015-01-26 10:43 UTC (permalink / raw)
  To: Wei Liu
  Cc: Ian Campbell, stefano.stabellini, Ian Jackson, xen-devel,
	samuel.thibault, dgdegra

>>> On 25.01.15 at 19:13, <wei.liu2@citrix.com> wrote:
> --- a/Config.mk
> +++ b/Config.mk
> @@ -245,13 +245,16 @@ OVMF_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/ovmf.git 
>  QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git 
>  QEMU_TRADITIONAL_URL ?= http://xenbits.xen.org/git-http/qemu-xen-unstable.git 
>  SEABIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/seabios.git 
> +MINI_OS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/mini-os.git 
>  else
>  OVMF_UPSTREAM_URL ?= git://xenbits.xen.org/ovmf.git
>  QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
>  QEMU_TRADITIONAL_URL ?= git://xenbits.xen.org/qemu-xen-unstable.git
>  SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
> +MINI_OS_UPSTREAM_URL ?= git://xenbits.xen.org/git-http/mini-os.git

Is this perhaps a copy-and-paste mistake?

Jan

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target
  2015-01-26 10:43   ` Jan Beulich
@ 2015-01-26 10:54     ` Wei Liu
  0 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-26 10:54 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Wei Liu, Ian Campbell, stefano.stabellini, Ian Jackson,
	xen-devel, samuel.thibault, dgdegra

On Mon, Jan 26, 2015 at 10:43:58AM +0000, Jan Beulich wrote:
> >>> On 25.01.15 at 19:13, <wei.liu2@citrix.com> wrote:
> > --- a/Config.mk
> > +++ b/Config.mk
> > @@ -245,13 +245,16 @@ OVMF_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/ovmf.git 
> >  QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git 
> >  QEMU_TRADITIONAL_URL ?= http://xenbits.xen.org/git-http/qemu-xen-unstable.git 
> >  SEABIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/seabios.git 
> > +MINI_OS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/mini-os.git 
> >  else
> >  OVMF_UPSTREAM_URL ?= git://xenbits.xen.org/ovmf.git
> >  QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
> >  QEMU_TRADITIONAL_URL ?= git://xenbits.xen.org/qemu-xen-unstable.git
> >  SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
> > +MINI_OS_UPSTREAM_URL ?= git://xenbits.xen.org/git-http/mini-os.git
> 
> Is this perhaps a copy-and-paste mistake?
> 

Yes. Well spotted. It should be git://xenbits.xen.org/mini-os.git.

Wei.

> Jan

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26  9:53   ` Thomas Leonard
@ 2015-01-26 10:57     ` Anil Madhavapeddy
  2015-01-27 11:52       ` Wei Liu
  2015-01-26 17:42     ` Martin Lucina
                       ` (3 subsequent siblings)
  4 siblings, 1 reply; 34+ messages in thread
From: Anil Madhavapeddy @ 2015-01-26 10:57 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On 26 Jan 2015, at 09:53, Thomas Leonard <talex5@gmail.com> wrote:
> 
> [ Cc += Anil ]
> 
> On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
>> Cc Ian and Ian and some folks who might be interested in this work.
>> 
>> On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
>>> There has been increasing use of mini-os in unikernel world and basically
>>> everybody has their own fork of mini-os. That way going foward is going
>>> to cause fragmentation of the community.
>>> 
>>> We would like to split off mini-os tree so that everybody can upstream their
>>> changes and work on a common code base. Later I would also like to setup
>>> a proper push gate for mini-os.
>>> 
>>> Stubdom's build environment is known to be very fragile, so basically all the
>>> real work is done in top level Makefile.
>>> 
>>> I use following runes to split off mini-os:
>>> 
>>>  git filter-branch --tag-name-filter cat \
>>>    --subdirectory-filter extras/mini-os/ -- --all
>>> 
>>>  # There is already a tag name 4.3.0-rc2 which points to the same commit.
>>>  git tag -d xen-4.3.0-rc2
>>> 
>>>  # Add xen- prefix to all tags
>>>  for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
>>> 
>>>  git gc --aggressive
>>> 
>>> The tree can be found at:
>>>  git://xenbits.xen.org/people/liuw/mini-os.git master
>>> 
>>> Note that mini-os cannot build on its own due to the limitation of it's own
>>> build system. Splitting it off it's the first step towards fixing that problem
> 
> In case it's useful: for the standalone version of Mini-OS used by
> Mirage, I had to include these directories too:
> 
> 1. xen/include/public
> 2. xen/common/libfdt
> 3. xen/include/xen/libfdt
> 4. config
> 
> ( https://github.com/talex5/xen/tree/minios-releases )

It would be useful if the work to split out MiniOS could be done in
the xen.git tree, so that it ends up building completely standalone
and there's a final changeset in xen.git.

What's the planned release schedule for the new MiniOS?  Independent
of Xen or initially coupled?

-anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-25 18:25 ` [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
  2015-01-26  9:53   ` Thomas Leonard
@ 2015-01-26 15:44   ` Ian Jackson
  1 sibling, 0 replies; 34+ messages in thread
From: Ian Jackson @ 2015-01-26 15:44 UTC (permalink / raw)
  To: Wei Liu
  Cc: talex5, Ian Campbell, stefano.stabellini, xen-devel, pooka,
	quan.xu, samuel.thibault, dgdegra

Wei Liu writes ("Re: [PATCH RFC 0/5] Split off mini-os to a separate tree"):
> Cc Ian and Ian and some folks who might be interested in this work.

Thanks.

This is all good.

I think we need some changes to osstest too because we will want a
push gate for xen's minios.  I don't think we want to keep hardcoding
the minios revision.  But that can wait - for now we can do it the way
qemu-trad works.

Thanks,
Ian.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26  9:53   ` Thomas Leonard
  2015-01-26 10:57     ` Anil Madhavapeddy
@ 2015-01-26 17:42     ` Martin Lucina
  2015-01-26 17:56       ` Anil Madhavapeddy
  2015-01-27 11:56       ` Wei Liu
  2015-01-27 11:48     ` Wei Liu
                       ` (2 subsequent siblings)
  4 siblings, 2 replies; 34+ messages in thread
From: Martin Lucina @ 2015-01-26 17:42 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Anil Madhavapeddy, Stefano Stabellini,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

talex5@gmail.com said:
> In case it's useful: for the standalone version of Mini-OS used by
> Mirage, I had to include these directories too:
> 
> 1. xen/include/public
> 2. xen/common/libfdt
> 3. xen/include/xen/libfdt
> 4. config
> 
> ( https://github.com/talex5/xen/tree/minios-releases )

Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
but not where. Any other forks please speak up :-)

Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
implementation of netfront, for instance.

> Will there be a separate mailing list for Mini-OS? That would be very
> useful for people who don't want to keep up with xen-devel.

+1

It would be useful to coordinate work. We (Rump Kernels) have also done a
bunch of changes to our fork [1], including ongoing work on namespacing
Mini-OS APIs (see [2] in case you missed it).

Martin

[1] https://github.com/rumpkernel/rumprun-xen/tree/master/xen
[2] http://thread.gmane.org/gmane.comp.rumpkernel.user/581

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 17:42     ` Martin Lucina
@ 2015-01-26 17:56       ` Anil Madhavapeddy
  2015-01-26 18:21         ` Martin Lucina
  2015-01-26 18:49         ` Thomas Leonard
  2015-01-27 11:56       ` Wei Liu
  1 sibling, 2 replies; 34+ messages in thread
From: Anil Madhavapeddy @ 2015-01-26 17:56 UTC (permalink / raw)
  To: Martin Lucina
  Cc: Thomas Leonard, Wei Liu, Ian Campbell, Stefano Stabellini,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On 26 Jan 2015, at 17:42, Martin Lucina <martin@lucina.net> wrote:
> 
> talex5@gmail.com said:
>> In case it's useful: for the standalone version of Mini-OS used by
>> Mirage, I had to include these directories too:
>> 
>> 1. xen/include/public
>> 2. xen/common/libfdt
>> 3. xen/include/xen/libfdt
>> 4. config
>> 
>> ( https://github.com/talex5/xen/tree/minios-releases )
> 
> Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
> but not where. Any other forks please speak up :-)
> 
> Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
> implementation of netfront, for instance.

Not very much of Mini-OS -- Mirage has everything from the ring protocol
up (XenStore, NetBack/Front, BlkBack/Front, Console, etc are all in OCaml).
So event channels and start of day boot, mainly.

It is useful to have the C XenBus around for start-of-day logging though,
since the emergency console isn't much use on public cloud services.

-anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 17:56       ` Anil Madhavapeddy
@ 2015-01-26 18:21         ` Martin Lucina
  2015-01-26 18:24           ` Anil Madhavapeddy
  2015-01-26 18:49         ` Thomas Leonard
  1 sibling, 1 reply; 34+ messages in thread
From: Martin Lucina @ 2015-01-26 18:21 UTC (permalink / raw)
  To: Anil Madhavapeddy
  Cc: Thomas Leonard, Wei Liu, Ian Campbell, Stefano Stabellini,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

anil@recoil.org said:
> On 26 Jan 2015, at 17:42, Martin Lucina <martin@lucina.net> wrote:
> > 
> > talex5@gmail.com said:
> >> In case it's useful: for the standalone version of Mini-OS used by
> >> Mirage, I had to include these directories too:
> >> 
> >> 1. xen/include/public
> >> 2. xen/common/libfdt
> >> 3. xen/include/xen/libfdt
> >> 4. config
> >> 
> >> ( https://github.com/talex5/xen/tree/minios-releases )
> > 
> > Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
> > but not where. Any other forks please speak up :-)
> > 
> > Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
> > implementation of netfront, for instance.
> 
> Not very much of Mini-OS -- Mirage has everything from the ring protocol
> up (XenStore, NetBack/Front, BlkBack/Front, Console, etc are all in OCaml).
> So event channels and start of day boot, mainly.
> 
> It is useful to have the C XenBus around for start-of-day logging though,
> since the emergency console isn't much use on public cloud services.

Interesting. Rump Kernels on Xen currently use the Mini-OS xenbus,
{net,blk,pci}front and console, however AFAICT most (all?) of these could
be provided by the NetBSD drivers instead. Such a setup also would not
leave much from Mini-OS.

I'm wondering if there is interest in a Nano-OS that provides just the bare
minimum needed for Unikernels to run atop cloud hypervisors (hint hint)?

Martin

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 18:21         ` Martin Lucina
@ 2015-01-26 18:24           ` Anil Madhavapeddy
  0 siblings, 0 replies; 34+ messages in thread
From: Anil Madhavapeddy @ 2015-01-26 18:24 UTC (permalink / raw)
  To: Martin Lucina
  Cc: Thomas Leonard, Wei Liu, Ian Campbell, Stefano Stabellini,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On 26 Jan 2015, at 18:21, Martin Lucina <martin@lucina.net> wrote:
> 
> anil@recoil.org said:
>> On 26 Jan 2015, at 17:42, Martin Lucina <martin@lucina.net> wrote:
>>> 
>>> talex5@gmail.com said:
>>>> In case it's useful: for the standalone version of Mini-OS used by
>>>> Mirage, I had to include these directories too:
>>>> 
>>>> 1. xen/include/public
>>>> 2. xen/common/libfdt
>>>> 3. xen/include/xen/libfdt
>>>> 4. config
>>>> 
>>>> ( https://github.com/talex5/xen/tree/minios-releases )
>>> 
>>> Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
>>> but not where. Any other forks please speak up :-)
>>> 
>>> Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
>>> implementation of netfront, for instance.
>> 
>> Not very much of Mini-OS -- Mirage has everything from the ring protocol
>> up (XenStore, NetBack/Front, BlkBack/Front, Console, etc are all in OCaml).
>> So event channels and start of day boot, mainly.
>> 
>> It is useful to have the C XenBus around for start-of-day logging though,
>> since the emergency console isn't much use on public cloud services.
> 
> Interesting. Rump Kernels on Xen currently use the Mini-OS xenbus,
> {net,blk,pci}front and console, however AFAICT most (all?) of these could
> be provided by the NetBSD drivers instead. Such a setup also would not
> leave much from Mini-OS.
> 
> I'm wondering if there is interest in a Nano-OS that provides just the bare
> minimum needed for Unikernels to run atop cloud hypervisors (hint hint)?

I think the current approach of just including the object files that are
needed by the implementation is fine.  It's just the start_kernel (weak)
symbol that needs to call the initialisers for each subsystem, and the other
object files are pretty standalone.  A few more #ifdefs could be sprinkled
around perhaps, but there's no need to break down MiniOS much more than it
already is.

-anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 17:56       ` Anil Madhavapeddy
  2015-01-26 18:21         ` Martin Lucina
@ 2015-01-26 18:49         ` Thomas Leonard
  2015-01-26 21:19           ` Anil Madhavapeddy
  1 sibling, 1 reply; 34+ messages in thread
From: Thomas Leonard @ 2015-01-26 18:49 UTC (permalink / raw)
  To: Anil Madhavapeddy
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra,
	Martin Lucina

On 26 January 2015 at 17:56, Anil Madhavapeddy <anil@recoil.org> wrote:
> On 26 Jan 2015, at 17:42, Martin Lucina <martin@lucina.net> wrote:
>>
>> talex5@gmail.com said:
>>> In case it's useful: for the standalone version of Mini-OS used by
>>> Mirage, I had to include these directories too:
>>>
>>> 1. xen/include/public
>>> 2. xen/common/libfdt
>>> 3. xen/include/xen/libfdt
>>> 4. config
>>>
>>> ( https://github.com/talex5/xen/tree/minios-releases )
>>
>> Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
>> but not where. Any other forks please speak up :-)
>>
>> Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
>> implementation of netfront, for instance.
>
> Not very much of Mini-OS -- Mirage has everything from the ring protocol
> up (XenStore, NetBack/Front, BlkBack/Front, Console, etc are all in OCaml).
> So event channels and start of day boot, mainly.
>
> It is useful to have the C XenBus around for start-of-day logging though,
> since the emergency console isn't much use on public cloud services.

Actually, we don't use C XenBus either. The Mirage start_kernel is:

void start_kernel(void)
{
  init_events();
  local_irq_enable();
  setup_xen_features();
  init_mm();
  init_time();
  init_console();
  init_gnttab();
  app_main_thread(NULL);
}

We don't use the scheduler or xenbus from Mini-OS. It's mainly startup
code, malloc and printk (for debug logging before Mirage's console
driver is ready), time and gnttab.


-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 18:49         ` Thomas Leonard
@ 2015-01-26 21:19           ` Anil Madhavapeddy
  0 siblings, 0 replies; 34+ messages in thread
From: Anil Madhavapeddy @ 2015-01-26 21:19 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Ian Jackson,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra,
	Martin Lucina

On 26 Jan 2015, at 18:49, Thomas Leonard <talex5@gmail.com> wrote:
> 
> On 26 January 2015 at 17:56, Anil Madhavapeddy <anil@recoil.org> wrote:
>> On 26 Jan 2015, at 17:42, Martin Lucina <martin@lucina.net> wrote:
>>> 
>>> talex5@gmail.com said:
>>>> In case it's useful: for the standalone version of Mini-OS used by
>>>> Mirage, I had to include these directories too:
>>>> 
>>>> 1. xen/include/public
>>>> 2. xen/common/libfdt
>>>> 3. xen/include/xen/libfdt
>>>> 4. config
>>>> 
>>>> ( https://github.com/talex5/xen/tree/minios-releases )
>>> 
>>> Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
>>> but not where. Any other forks please speak up :-)
>>> 
>>> Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
>>> implementation of netfront, for instance.
>> 
>> Not very much of Mini-OS -- Mirage has everything from the ring protocol
>> up (XenStore, NetBack/Front, BlkBack/Front, Console, etc are all in OCaml).
>> So event channels and start of day boot, mainly.
>> 
>> It is useful to have the C XenBus around for start-of-day logging though,
>> since the emergency console isn't much use on public cloud services.
> 
> Actually, we don't use C XenBus either. The Mirage start_kernel is:

Sorry, I meant the C ring macros for the start-of-day logging.  We write
directly to the console using them from the C printk, whereas the Mirage
libraries use an OCaml reimplementation in the shared-memory-ring OPAM
package.  XenBus and the C coop thread library in MiniOS isn't used in Mirage.

-anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26  9:53   ` Thomas Leonard
  2015-01-26 10:57     ` Anil Madhavapeddy
  2015-01-26 17:42     ` Martin Lucina
@ 2015-01-27 11:48     ` Wei Liu
  2015-01-27 14:48     ` Ian Jackson
  2015-01-30 11:26     ` Wei Liu
  4 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-27 11:48 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Anil Madhavapeddy,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Mon, Jan 26, 2015 at 09:53:25AM +0000, Thomas Leonard wrote:
> [ Cc += Anil ]
> 
> On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
> > Cc Ian and Ian and some folks who might be interested in this work.
> >
> > On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
> >> There has been increasing use of mini-os in unikernel world and basically
> >> everybody has their own fork of mini-os. That way going foward is going
> >> to cause fragmentation of the community.
> >>
> >> We would like to split off mini-os tree so that everybody can upstream their
> >> changes and work on a common code base. Later I would also like to setup
> >> a proper push gate for mini-os.
> >>
> >> Stubdom's build environment is known to be very fragile, so basically all the
> >> real work is done in top level Makefile.
> >>
> >> I use following runes to split off mini-os:
> >>
> >>   git filter-branch --tag-name-filter cat \
> >>     --subdirectory-filter extras/mini-os/ -- --all
> >>
> >>   # There is already a tag name 4.3.0-rc2 which points to the same commit.
> >>   git tag -d xen-4.3.0-rc2
> >>
> >>   # Add xen- prefix to all tags
> >>   for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
> >>
> >>   git gc --aggressive
> >>
> >> The tree can be found at:
> >>   git://xenbits.xen.org/people/liuw/mini-os.git master
> >>
> >> Note that mini-os cannot build on its own due to the limitation of it's own
> >> build system. Splitting it off it's the first step towards fixing that problem
> 
> In case it's useful: for the standalone version of Mini-OS used by
> Mirage, I had to include these directories too:
> 
> 1. xen/include/public
> 2. xen/common/libfdt
> 3. xen/include/xen/libfdt
> 4. config
> 
> ( https://github.com/talex5/xen/tree/minios-releases )
> 

Thanks. I will have a look.

> Will there be a separate mailing list for Mini-OS? That would be very
> useful for people who don't want to keep up with xen-devel.
> 

Ian J will arrange a new mailing list. Thanks Ian! :-)

Wei.

> Thanks!
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 10:57     ` Anil Madhavapeddy
@ 2015-01-27 11:52       ` Wei Liu
  2015-01-27 12:16         ` Ian Campbell
  2015-01-27 14:19         ` Anil Madhavapeddy
  0 siblings, 2 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-27 11:52 UTC (permalink / raw)
  To: Anil Madhavapeddy
  Cc: Thomas Leonard, Wei Liu, Ian Campbell, Stefano Stabellini,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Mon, Jan 26, 2015 at 10:57:57AM +0000, Anil Madhavapeddy wrote:
> On 26 Jan 2015, at 09:53, Thomas Leonard <talex5@gmail.com> wrote:
> > 
> > [ Cc += Anil ]
> > 
> > On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
> >> Cc Ian and Ian and some folks who might be interested in this work.
> >> 
> >> On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
> >>> There has been increasing use of mini-os in unikernel world and basically
> >>> everybody has their own fork of mini-os. That way going foward is going
> >>> to cause fragmentation of the community.
> >>> 
> >>> We would like to split off mini-os tree so that everybody can upstream their
> >>> changes and work on a common code base. Later I would also like to setup
> >>> a proper push gate for mini-os.
> >>> 
> >>> Stubdom's build environment is known to be very fragile, so basically all the
> >>> real work is done in top level Makefile.
> >>> 
> >>> I use following runes to split off mini-os:
> >>> 
> >>>  git filter-branch --tag-name-filter cat \
> >>>    --subdirectory-filter extras/mini-os/ -- --all
> >>> 
> >>>  # There is already a tag name 4.3.0-rc2 which points to the same commit.
> >>>  git tag -d xen-4.3.0-rc2
> >>> 
> >>>  # Add xen- prefix to all tags
> >>>  for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
> >>> 
> >>>  git gc --aggressive
> >>> 
> >>> The tree can be found at:
> >>>  git://xenbits.xen.org/people/liuw/mini-os.git master
> >>> 
> >>> Note that mini-os cannot build on its own due to the limitation of it's own
> >>> build system. Splitting it off it's the first step towards fixing that problem
> > 
> > In case it's useful: for the standalone version of Mini-OS used by
> > Mirage, I had to include these directories too:
> > 
> > 1. xen/include/public
> > 2. xen/common/libfdt
> > 3. xen/include/xen/libfdt
> > 4. config
> > 
> > ( https://github.com/talex5/xen/tree/minios-releases )
> 
> It would be useful if the work to split out MiniOS could be done in
> the xen.git tree, so that it ends up building completely standalone
> and there's a final changeset in xen.git.
> 

I would rather take the other approach -- split out first than fix
problems as we go.

Splitting should be done sooner in the release cycle rather than later
IMHO.

> What's the planned release schedule for the new MiniOS?  Independent
> of Xen or initially coupled?
> 

My initial thought is that we should start coupled. Releasing
independently requires more man power than releasing coupled. Of course
the option to release independently is always available.

Wei.

> -anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26 17:42     ` Martin Lucina
  2015-01-26 17:56       ` Anil Madhavapeddy
@ 2015-01-27 11:56       ` Wei Liu
  1 sibling, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-27 11:56 UTC (permalink / raw)
  To: Thomas Leonard, Wei Liu, Ian Campbell, Stefano Stabellini,
	Anil Madhavapeddy, Ian Jackson, xen-devel, pooka, quan.xu,
	Samuel Thibault, dgdegra
  Cc: awick

On Mon, Jan 26, 2015 at 06:42:11PM +0100, Martin Lucina wrote:
> talex5@gmail.com said:
> > In case it's useful: for the standalone version of Mini-OS used by
> > Mirage, I had to include these directories too:
> > 
> > 1. xen/include/public
> > 2. xen/common/libfdt
> > 3. xen/include/xen/libfdt
> > 4. config
> > 
> > ( https://github.com/talex5/xen/tree/minios-releases )
> 
> Ah, so that's where the Mirage fork of Mini-OS lives. I knew there was one,
> but not where. Any other forks please speak up :-)
> 

I think HaLVM (Haskell VM on Xen) also uses mini-os. I forgot to CC
Adam@Galios at the beginning (now done).

Adam, in case you're wondering what's going on, the start of this thread
is
  <1422209626-9926-1-git-send-email-wei.liu2@citrix.com>

Feel free to chime in.

Wei.

> Which parts of Mini-OS does Mirage actually use? I know you have an OCaml
> implementation of netfront, for instance.
> 
> > Will there be a separate mailing list for Mini-OS? That would be very
> > useful for people who don't want to keep up with xen-devel.
> 
> +1
> 
> It would be useful to coordinate work. We (Rump Kernels) have also done a
> bunch of changes to our fork [1], including ongoing work on namespacing
> Mini-OS APIs (see [2] in case you missed it).
> 
> Martin
> 
> [1] https://github.com/rumpkernel/rumprun-xen/tree/master/xen
> [2] http://thread.gmane.org/gmane.comp.rumpkernel.user/581

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 11:52       ` Wei Liu
@ 2015-01-27 12:16         ` Ian Campbell
  2015-01-27 14:19         ` Anil Madhavapeddy
  1 sibling, 0 replies; 34+ messages in thread
From: Ian Campbell @ 2015-01-27 12:16 UTC (permalink / raw)
  To: Wei Liu
  Cc: Thomas Leonard, Stefano Stabellini, Anil Madhavapeddy,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Tue, 2015-01-27 at 11:52 +0000, Wei Liu wrote:
> Splitting should be done sooner in the release cycle rather than later
> IMHO.

I agree, it should be done very soon and we should avoid letting the
perfect be the enemy of taking the first step (to mix a few idoims).

> > What's the planned release schedule for the new MiniOS?  Independent
> > of Xen or initially coupled?
> > 
> 
> My initial thought is that we should start coupled. Releasing
> independently requires more man power than releasing coupled. Of course
> the option to release independently is always available.

I agree, lets take the first step and get it moved out but and then once
things have been properly decoupled at the code level etc think about
decoupling the release process too.

Ian.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
                   ` (5 preceding siblings ...)
  2015-01-25 18:25 ` [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
@ 2015-01-27 12:18 ` Samuel Thibault
  2015-01-29 11:09   ` Wei Liu
  6 siblings, 1 reply; 34+ messages in thread
From: Samuel Thibault @ 2015-01-27 12:18 UTC (permalink / raw)
  To: Wei Liu; +Cc: dgdegra, stefano.stabellini, xen-devel

Hello,

Wei Liu, le Sun 25 Jan 2015 18:13:41 +0000, a écrit :
> There has been increasing use of mini-os in unikernel world and basically
> everybody has their own fork of mini-os. That way going foward is going
> to cause fragmentation of the community.
> 
> We would like to split off mini-os tree so that everybody can upstream their
> changes and work on a common code base. Later I would also like to setup
> a proper push gate for mini-os.

Definitely agreed!

> Stubdom's build environment is known to be very fragile, so basically all the
> real work is done in top level Makefile.

I'm wondering about the relation between mini-os and stubdom: will
we assume that they are developped and released together?  For now
we could add something to mini-os and use it in stubdom/ without
caring about backward compatibility in either way.  If the two get
developed independently we may encounter issues, particularly if
stubdom/ downloads mini-os rather than taking the source alongside. I'm
wondering whether stubdom/ should be put in the same repository as
mini-os; in that case we reverse the situation: it's things like libxc &
xenstore which need to be downloaded instead, I wonder to which extend
it is less coupled with mini-os than stubdom/: libxc does use some
systems functions of mini-os (alloc_fd, map_frames_ex, mask_evtchn,
etc.), perhaps stubdom/ could contain the xc_minios.c file for building
libxc, and the interface between the mini-os repo and the xen repo would
then be the xc_osdep_ops structure. That sounds a more viable interface
on the long run than the minios system interface, what do people think?

Samuel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 11:52       ` Wei Liu
  2015-01-27 12:16         ` Ian Campbell
@ 2015-01-27 14:19         ` Anil Madhavapeddy
  2015-01-29 15:47           ` Wei Liu
  1 sibling, 1 reply; 34+ messages in thread
From: Anil Madhavapeddy @ 2015-01-27 14:19 UTC (permalink / raw)
  To: Wei Liu
  Cc: Thomas Leonard, Ian Campbell, Stefano Stabellini, Ian Jackson,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On 27 Jan 2015, at 11:52, Wei Liu <wei.liu2@citrix.com> wrote:
> 
> On Mon, Jan 26, 2015 at 10:57:57AM +0000, Anil Madhavapeddy wrote:
>> On 26 Jan 2015, at 09:53, Thomas Leonard <talex5@gmail.com> wrote:
>>> 
>>> [ Cc += Anil ]
>>> 
>>> On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
>>>> Cc Ian and Ian and some folks who might be interested in this work.
>>>> 
>>>> On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
>>>>> There has been increasing use of mini-os in unikernel world and basically
>>>>> everybody has their own fork of mini-os. That way going foward is going
>>>>> to cause fragmentation of the community.
>>>>> 
>>>>> We would like to split off mini-os tree so that everybody can upstream their
>>>>> changes and work on a common code base. Later I would also like to setup
>>>>> a proper push gate for mini-os.
>>>>> 
>>>>> Stubdom's build environment is known to be very fragile, so basically all the
>>>>> real work is done in top level Makefile.
>>>>> 
>>>>> I use following runes to split off mini-os:
>>>>> 
>>>>> git filter-branch --tag-name-filter cat \
>>>>>   --subdirectory-filter extras/mini-os/ -- --all
>>>>> 
>>>>> # There is already a tag name 4.3.0-rc2 which points to the same commit.
>>>>> git tag -d xen-4.3.0-rc2
>>>>> 
>>>>> # Add xen- prefix to all tags
>>>>> for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
>>>>> 
>>>>> git gc --aggressive
>>>>> 
>>>>> The tree can be found at:
>>>>> git://xenbits.xen.org/people/liuw/mini-os.git master
>>>>> 
>>>>> Note that mini-os cannot build on its own due to the limitation of it's own
>>>>> build system. Splitting it off it's the first step towards fixing that problem
>>> 
>>> In case it's useful: for the standalone version of Mini-OS used by
>>> Mirage, I had to include these directories too:
>>> 
>>> 1. xen/include/public
>>> 2. xen/common/libfdt
>>> 3. xen/include/xen/libfdt
>>> 4. config
>>> 
>>> ( https://github.com/talex5/xen/tree/minios-releases )
>> 
>> It would be useful if the work to split out MiniOS could be done in
>> the xen.git tree, so that it ends up building completely standalone
>> and there's a final changeset in xen.git.
>> 
> 
> I would rather take the other approach -- split out first than fix
> problems as we go.
> 

That makes reconciling some of these long running forks annoying,
since they branched off xen.git.  It doesn't matter if you split/fix
in any order, but it's nice to have one changeset against xen.git that
breaks out the build dependencies so that extras/mini-os builds
independently from the Xen Makefile infrastructure, and then another
that deletes MiniOS (which of course will not be in the split repo).

> Splitting should be done sooner in the release cycle rather than later
> IMHO.
> 
>> What's the planned release schedule for the new MiniOS?  Independent
>> of Xen or initially coupled?
>> 
> 
> My initial thought is that we should start coupled. Releasing
> independently requires more man power than releasing coupled. Of course
> the option to release independently is always available.

That all makes sense to me.

-anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26  9:53   ` Thomas Leonard
                       ` (2 preceding siblings ...)
  2015-01-27 11:48     ` Wei Liu
@ 2015-01-27 14:48     ` Ian Jackson
  2015-01-27 15:08       ` Ian Campbell
  2015-01-30 11:26     ` Wei Liu
  4 siblings, 1 reply; 34+ messages in thread
From: Ian Jackson @ 2015-01-27 14:48 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Anil Madhavapeddy,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

Thomas Leonard writes ("Re: [PATCH RFC 0/5] Split off mini-os to a separate tree"):
> In case it's useful: for the standalone version of Mini-OS used by
> Mirage, I had to include these directories too:
> 
> 1. xen/include/public

Official Xen policy is that OSs that want to run on Xen should take a
copy of those headers into their own source tree.

> 2. xen/common/libfdt
> 3. xen/include/xen/libfdt

libdft is its own project.  I have no idea why we have a copy of it in
xen.git.  I think this is wrong.

> 4. config

That's build system stuff which Mini-OS should grow its own
(preferably sane) version of.

Ian.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 14:48     ` Ian Jackson
@ 2015-01-27 15:08       ` Ian Campbell
  2015-01-27 15:27         ` Ian Jackson
  0 siblings, 1 reply; 34+ messages in thread
From: Ian Campbell @ 2015-01-27 15:08 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Thomas Leonard, Wei Liu, Stefano Stabellini, Anil Madhavapeddy,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Tue, 2015-01-27 at 14:48 +0000, Ian Jackson wrote:
> > 2. xen/common/libfdt
> > 3. xen/include/xen/libfdt
> 
> libdft is its own project.  I have no idea why we have a copy of it in
> xen.git.  I think this is wrong.

This is for use by (i.e. linking into) the Xen kernel, not the tools
etc. It's common to embed libfdt in this way for kernel uses, since we
can't really use link against libfdt.so (or even .a) like you would
normally.

For the tools side we do use the libfdt.so from the system.

Ian.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 15:08       ` Ian Campbell
@ 2015-01-27 15:27         ` Ian Jackson
  2015-01-27 15:45           ` Ian Campbell
  0 siblings, 1 reply; 34+ messages in thread
From: Ian Jackson @ 2015-01-27 15:27 UTC (permalink / raw)
  To: Ian Campbell
  Cc: Thomas Leonard, Wei Liu, Stefano Stabellini, Anil Madhavapeddy,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

Ian Campbell writes ("Re: [PATCH RFC 0/5] Split off mini-os to a separate tree"):
> On Tue, 2015-01-27 at 14:48 +0000, Ian Jackson wrote:
> > libdft is its own project.  I have no idea why we have a copy of it in
> > xen.git.  I think this is wrong.
> 
> This is for use by (i.e. linking into) the Xen kernel, not the tools
> etc. It's common to embed libfdt in this way for kernel uses, since we
> can't really use link against libfdt.so (or even .a) like you would
> normally.

That doesn't explain why we don't clone a copy of the upstream tree
during build, like we do for other projects we depend on (rather than
copying the whole thing into our own tree).

I think that the former is what Mini-OS consumers should be expected
to do (perhaps with some help from the Mini-OS build system).

Ian.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 15:27         ` Ian Jackson
@ 2015-01-27 15:45           ` Ian Campbell
  0 siblings, 0 replies; 34+ messages in thread
From: Ian Campbell @ 2015-01-27 15:45 UTC (permalink / raw)
  To: Ian Jackson
  Cc: Thomas Leonard, Wei Liu, Anil Madhavapeddy, Stefano Stabellini,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Tue, 2015-01-27 at 15:27 +0000, Ian Jackson wrote:
> Ian Campbell writes ("Re: [PATCH RFC 0/5] Split off mini-os to a separate tree"):
> > On Tue, 2015-01-27 at 14:48 +0000, Ian Jackson wrote:
> > > libdft is its own project.  I have no idea why we have a copy of it in
> > > xen.git.  I think this is wrong.
> > 
> > This is for use by (i.e. linking into) the Xen kernel, not the tools
> > etc. It's common to embed libfdt in this way for kernel uses, since we
> > can't really use link against libfdt.so (or even .a) like you would
> > normally.
> 
> That doesn't explain why we don't clone a copy of the upstream tree
> during build, like we do for other projects we depend on (rather than
> copying the whole thing into our own tree).

The xen/* subtree doesn't do that for anything, it builds standalone. I
don't think you will get much traction from the hypervisor maintainers
on changing that.

Anyway, embedding is how libfdt is intended to be consumed by things
like OS kernels and bootloaders.

> I think that the former is what Mini-OS consumers should be expected
> to do (perhaps with some help from the Mini-OS build system).

If this were a peripheral library used for e.g. application layer stuff
I might agree, however this is a core underlying part of the mini-os ARM
port, IMHO it makes sense to continue to embed it in mini-os for the
same reasons it does for Xen, Linux, u-boot, *BSD etc to continue to do
so.

Ian.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 12:18 ` Samuel Thibault
@ 2015-01-29 11:09   ` Wei Liu
  2015-01-29 12:08     ` Samuel Thibault
  0 siblings, 1 reply; 34+ messages in thread
From: Wei Liu @ 2015-01-29 11:09 UTC (permalink / raw)
  To: Samuel Thibault, Wei Liu, xen-devel, stefano.stabellini, dgdegra

On Tue, Jan 27, 2015 at 01:18:02PM +0100, Samuel Thibault wrote:
> Hello,
> 
> Wei Liu, le Sun 25 Jan 2015 18:13:41 +0000, a écrit :
> > There has been increasing use of mini-os in unikernel world and basically
> > everybody has their own fork of mini-os. That way going foward is going
> > to cause fragmentation of the community.
> > 
> > We would like to split off mini-os tree so that everybody can upstream their
> > changes and work on a common code base. Later I would also like to setup
> > a proper push gate for mini-os.
> 
> Definitely agreed!
> 
> > Stubdom's build environment is known to be very fragile, so basically all the
> > real work is done in top level Makefile.
> 
> I'm wondering about the relation between mini-os and stubdom: will
> we assume that they are developped and released together?  For now

For now I think it makes sens to release mini-os and Xen coupled, so
stubdom and mini-os are in effect developed and released together.

> we could add something to mini-os and use it in stubdom/ without
> caring about backward compatibility in either way.  If the two get
> developed independently we may encounter issues, particularly if
> stubdom/ downloads mini-os rather than taking the source alongside. I'm
> wondering whether stubdom/ should be put in the same repository as

That's a bit overkill IMHO. People interested in mini-os don't
necessarily have much interest in stubdom.

In fact, stubdom should be treated as a downstream of mini-os as with
any other unikernel. This can help us discover any dishonesty in API
design and code.

> mini-os; in that case we reverse the situation: it's things like libxc &
> xenstore which need to be downloaded instead, I wonder to which extend
> it is less coupled with mini-os than stubdom/: libxc does use some
> systems functions of mini-os (alloc_fd, map_frames_ex, mask_evtchn,
> etc.), perhaps stubdom/ could contain the xc_minios.c file for building
> libxc, and the interface between the mini-os repo and the xen repo would
> then be the xc_osdep_ops structure. That sounds a more viable interface
> on the long run than the minios system interface, what do people think?
> 

Unfortunately we can't do that, because xc_minios.c depends on some
libxc internal interface (it includes xc_private.h).

Wei.

> Samuel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-29 11:09   ` Wei Liu
@ 2015-01-29 12:08     ` Samuel Thibault
  0 siblings, 0 replies; 34+ messages in thread
From: Samuel Thibault @ 2015-01-29 12:08 UTC (permalink / raw)
  To: Wei Liu; +Cc: dgdegra, stefano.stabellini, xen-devel

Wei Liu, le Thu 29 Jan 2015 11:09:04 +0000, a écrit :
> In fact, stubdom should be treated as a downstream of mini-os as with
> any other unikernel. This can help us discover any dishonesty in API
> design and code.

Right :)

Samuel

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-27 14:19         ` Anil Madhavapeddy
@ 2015-01-29 15:47           ` Wei Liu
  0 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-29 15:47 UTC (permalink / raw)
  To: Anil Madhavapeddy
  Cc: Thomas Leonard, Wei Liu, Ian Campbell, Stefano Stabellini,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Tue, Jan 27, 2015 at 02:19:23PM +0000, Anil Madhavapeddy wrote:
[...]
> > 
> 
> That makes reconciling some of these long running forks annoying,
> since they branched off xen.git.  It doesn't matter if you split/fix
> in any order, but it's nice to have one changeset against xen.git that
> breaks out the build dependencies so that extras/mini-os builds
> independently from the Xen Makefile infrastructure, and then another
> that deletes MiniOS (which of course will not be in the split repo).
> 

If you're interested in Mini-OS that can be built independently. Have a
look at
  http://xenbits.xen.org/gitweb/?p=people/liuw/mini-os.git;a=commit;h=4d21a4206e328d3a308926ea19b6ede597644638

Wei.

> > Splitting should be done sooner in the release cycle rather than later
> > IMHO.
> > 
> >> What's the planned release schedule for the new MiniOS?  Independent
> >> of Xen or initially coupled?
> >> 
> > 
> > My initial thought is that we should start coupled. Releasing
> > independently requires more man power than releasing coupled. Of course
> > the option to release independently is always available.
> 
> That all makes sense to me.
> 
> -anil

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-26  9:53   ` Thomas Leonard
                       ` (3 preceding siblings ...)
  2015-01-27 14:48     ` Ian Jackson
@ 2015-01-30 11:26     ` Wei Liu
  2015-01-30 11:49       ` Thomas Leonard
  4 siblings, 1 reply; 34+ messages in thread
From: Wei Liu @ 2015-01-30 11:26 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Anil Madhavapeddy,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Mon, Jan 26, 2015 at 09:53:25AM +0000, Thomas Leonard wrote:
> [ Cc += Anil ]
> 
> On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
> > Cc Ian and Ian and some folks who might be interested in this work.
> >
> > On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
> >> There has been increasing use of mini-os in unikernel world and basically
> >> everybody has their own fork of mini-os. That way going foward is going
> >> to cause fragmentation of the community.
> >>
> >> We would like to split off mini-os tree so that everybody can upstream their
> >> changes and work on a common code base. Later I would also like to setup
> >> a proper push gate for mini-os.
> >>
> >> Stubdom's build environment is known to be very fragile, so basically all the
> >> real work is done in top level Makefile.
> >>
> >> I use following runes to split off mini-os:
> >>
> >>   git filter-branch --tag-name-filter cat \
> >>     --subdirectory-filter extras/mini-os/ -- --all
> >>
> >>   # There is already a tag name 4.3.0-rc2 which points to the same commit.
> >>   git tag -d xen-4.3.0-rc2
> >>
> >>   # Add xen- prefix to all tags
> >>   for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
> >>
> >>   git gc --aggressive
> >>
> >> The tree can be found at:
> >>   git://xenbits.xen.org/people/liuw/mini-os.git master
> >>
> >> Note that mini-os cannot build on its own due to the limitation of it's own
> >> build system. Splitting it off it's the first step towards fixing that problem
> 
> In case it's useful: for the standalone version of Mini-OS used by
> Mirage, I had to include these directories too:
> 
> 1. xen/include/public
> 2. xen/common/libfdt
> 3. xen/include/xen/libfdt

Is libfdt required? I see inclusion of libfdt.h in arch/arm/mm.c but I
couldn't find trace to link libfdt in Makefile. And I ran a simple test
to compile minios in Xen tree on an arm board it doesn't compile.

If arm support is still WIP I'm going to ignore libfdt for now.

Wei.

> 4. config
> 
> ( https://github.com/talex5/xen/tree/minios-releases )
> 
> Will there be a separate mailing list for Mini-OS? That would be very
> useful for people who don't want to keep up with xen-devel.
> 
> Thanks!
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-30 11:26     ` Wei Liu
@ 2015-01-30 11:49       ` Thomas Leonard
  2015-01-30 12:31         ` Wei Liu
  0 siblings, 1 reply; 34+ messages in thread
From: Thomas Leonard @ 2015-01-30 11:49 UTC (permalink / raw)
  To: Wei Liu
  Cc: Ian Campbell, Stefano Stabellini, Anil Madhavapeddy, Ian Jackson,
	xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On 30 January 2015 at 11:26, Wei Liu <wei.liu2@citrix.com> wrote:
> On Mon, Jan 26, 2015 at 09:53:25AM +0000, Thomas Leonard wrote:
>> [ Cc += Anil ]
>>
>> On 25 January 2015 at 18:25, Wei Liu <wei.liu2@citrix.com> wrote:
>> > Cc Ian and Ian and some folks who might be interested in this work.
>> >
>> > On Sun, Jan 25, 2015 at 06:13:41PM +0000, Wei Liu wrote:
>> >> There has been increasing use of mini-os in unikernel world and basically
>> >> everybody has their own fork of mini-os. That way going foward is going
>> >> to cause fragmentation of the community.
>> >>
>> >> We would like to split off mini-os tree so that everybody can upstream their
>> >> changes and work on a common code base. Later I would also like to setup
>> >> a proper push gate for mini-os.
>> >>
>> >> Stubdom's build environment is known to be very fragile, so basically all the
>> >> real work is done in top level Makefile.
>> >>
>> >> I use following runes to split off mini-os:
>> >>
>> >>   git filter-branch --tag-name-filter cat \
>> >>     --subdirectory-filter extras/mini-os/ -- --all
>> >>
>> >>   # There is already a tag name 4.3.0-rc2 which points to the same commit.
>> >>   git tag -d xen-4.3.0-rc2
>> >>
>> >>   # Add xen- prefix to all tags
>> >>   for t in `git tag`; do git tag "xen-$t" "$t"; git tag -d "$t" ; done
>> >>
>> >>   git gc --aggressive
>> >>
>> >> The tree can be found at:
>> >>   git://xenbits.xen.org/people/liuw/mini-os.git master
>> >>
>> >> Note that mini-os cannot build on its own due to the limitation of it's own
>> >> build system. Splitting it off it's the first step towards fixing that problem
>>
>> In case it's useful: for the standalone version of Mini-OS used by
>> Mirage, I had to include these directories too:
>>
>> 1. xen/include/public
>> 2. xen/common/libfdt
>> 3. xen/include/xen/libfdt
>
> Is libfdt required? I see inclusion of libfdt.h in arch/arm/mm.c but I
> couldn't find trace to link libfdt in Makefile. And I ran a simple test
> to compile minios in Xen tree on an arm board it doesn't compile.
>
> If arm support is still WIP I'm going to ignore libfdt for now.

The ARM port works fine, but you need to apply the last couple of
patches in the series (the rest are already in). The latest versions
are on my "next" branch here:

  https://github.com/talex5/xen/commits/next

If you want to test it, you need these two:

- mini-os: arm: interrupt controller
- mini-os: arm: build system

> Wei.
>
>> 4. config
>>
>> ( https://github.com/talex5/xen/tree/minios-releases )
>>
>> Will there be a separate mailing list for Mini-OS? That would be very
>> useful for people who don't want to keep up with xen-devel.
>>
>> Thanks!
>>
>>
>> --
>> Dr Thomas Leonard        http://0install.net/
>> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA



-- 
Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH RFC 0/5] Split off mini-os to a separate tree
  2015-01-30 11:49       ` Thomas Leonard
@ 2015-01-30 12:31         ` Wei Liu
  0 siblings, 0 replies; 34+ messages in thread
From: Wei Liu @ 2015-01-30 12:31 UTC (permalink / raw)
  To: Thomas Leonard
  Cc: Wei Liu, Ian Campbell, Stefano Stabellini, Anil Madhavapeddy,
	Ian Jackson, xen-devel, pooka, quan.xu, Samuel Thibault, dgdegra

On Fri, Jan 30, 2015 at 11:49:41AM +0000, Thomas Leonard wrote:
[...]
> > Is libfdt required? I see inclusion of libfdt.h in arch/arm/mm.c but I
> > couldn't find trace to link libfdt in Makefile. And I ran a simple test
> > to compile minios in Xen tree on an arm board it doesn't compile.
> >
> > If arm support is still WIP I'm going to ignore libfdt for now.
> 
> The ARM port works fine, but you need to apply the last couple of
> patches in the series (the rest are already in). The latest versions
> are on my "next" branch here:
> 
>   https://github.com/talex5/xen/commits/next
> 
> If you want to test it, you need these two:
> 
> - mini-os: arm: interrupt controller
> - mini-os: arm: build system
> 

OK. This is still WIP I'm not going to import libfdt for now.  You can
import libfdt later as you upstream your changes -- it's only copying
some files anyway...

Wei.

> > Wei.
> >
> >> 4. config
> >>
> >> ( https://github.com/talex5/xen/tree/minios-releases )
> >>
> >> Will there be a separate mailing list for Mini-OS? That would be very
> >> useful for people who don't want to keep up with xen-devel.
> >>
> >> Thanks!
> >>
> >>
> >> --
> >> Dr Thomas Leonard        http://0install.net/
> >> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> >> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA
> 
> 
> 
> -- 
> Dr Thomas Leonard        http://0install.net/
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
> GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2015-01-30 12:31 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-25 18:13 [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
2015-01-25 18:13 ` [PATCH RFC 1/5] Makefile: refactor build/clean/distclean targets Wei Liu
2015-01-25 18:13 ` [PATCH RFC 2/5] stubdom: don't look for mini-os source file during configure Wei Liu
2015-01-25 18:13 ` [PATCH RFC 3/5] git-checkout.sh: use "mkdir -p" Wei Liu
2015-01-25 18:13 ` [PATCH RFC 4/5] Makefile: stubdom targets now depend on mini-os target Wei Liu
2015-01-26 10:43   ` Jan Beulich
2015-01-26 10:54     ` Wei Liu
2015-01-25 18:13 ` [PATCH RFC 5/5] Remove in-tree mini-os directory Wei Liu
2015-01-25 18:25 ` [PATCH RFC 0/5] Split off mini-os to a separate tree Wei Liu
2015-01-26  9:53   ` Thomas Leonard
2015-01-26 10:57     ` Anil Madhavapeddy
2015-01-27 11:52       ` Wei Liu
2015-01-27 12:16         ` Ian Campbell
2015-01-27 14:19         ` Anil Madhavapeddy
2015-01-29 15:47           ` Wei Liu
2015-01-26 17:42     ` Martin Lucina
2015-01-26 17:56       ` Anil Madhavapeddy
2015-01-26 18:21         ` Martin Lucina
2015-01-26 18:24           ` Anil Madhavapeddy
2015-01-26 18:49         ` Thomas Leonard
2015-01-26 21:19           ` Anil Madhavapeddy
2015-01-27 11:56       ` Wei Liu
2015-01-27 11:48     ` Wei Liu
2015-01-27 14:48     ` Ian Jackson
2015-01-27 15:08       ` Ian Campbell
2015-01-27 15:27         ` Ian Jackson
2015-01-27 15:45           ` Ian Campbell
2015-01-30 11:26     ` Wei Liu
2015-01-30 11:49       ` Thomas Leonard
2015-01-30 12:31         ` Wei Liu
2015-01-26 15:44   ` Ian Jackson
2015-01-27 12:18 ` Samuel Thibault
2015-01-29 11:09   ` Wei Liu
2015-01-29 12:08     ` Samuel Thibault

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.