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

Re: [Minios-devel] [UNIKRAFT PATCH 0/6] Enable solo5 platform support



On 2019/3/13 21:19, Simon Kuenzer wrote:
> Hey Haibo,
>
> thanks a lot for providing this patch series! It doesn't seem to require much 
> code, this looks good. ;-)
>
> I have some questions to this port:
> - Is the sub repository of solo5 needed? Maybe Ricardo can answer this: Is it 
> natural for solo5 to build guest and monitor (e.g., solo5-hvt) together? I 
> thought we could keep these two things separated but maybe I am wrong.
>

Yes, they can be build separately, but we need to make sure both the guest 
bindings(solo5_hvt.o) and the monitor(solo5-hvt) are from the same code base.
To be elaborate, the solo_hvt.o bindings will be linked together with our 
unikraft library and application objects to produce the final guest executable
image(helloworld_solo5-x86_64). Then we can run the uni-kernel with the 
following command:

sudo ./solo5-hvt helloworld_solo5-x86_64

So if we build the solo5 separately, we need to make sure the solo5 
monitor(solo5-hvt tender) is installed on our machine in advance.

>  - I would exclude block and networking for the beginning. I saw that the 
> built image require both to be attached right now. Ideally, that should 
> happen when you explicitly enable networking, block, etc. in the platform 
> configuration. When enabled, Solo5 networking should be represented as 
> libuknetdev device so that it can be utilized the same way as networking on 
> other platforms. Block-I/O should be done similarly. As site note, we are 
> currently working on a similar abstraction for block device drivers that will 
> go upstream soon.
>

Yes, the default solo5 building require both network and block device attached, 
or the monitor will refuse to load the guest kernel. So to run the helloworld 
application, I used the test build of solo5 monitor which doesn't include both 
of them. But I think it's not a big problem, we
can talk with Ricardo and the solo5 community about it.

For how to handle the network and block device, I think we need to add extra 
codes to the uknetdev library to adapt to solo5's network APIs:

void solo5_net_info(struct solo5_net_info *info);
solo5_result_t solo5_net_write(const uint8_t *buf, size_t size);
solo5_result_t solo5_net_read(uint8_t *buf, size_t size, size_t *read_size);

Hi Ricardo,

Please correct me if I was wrong or miss something.

Regards,
Haibo

> Thanks a lot,
>
> Simon
>
> Start without netwotking and block / add this as dep only when needed.
> Add networking thorugh libuknetdev.
>
> On 11.03.19, 02:23, "Minios-devel on behalf of Haibo Xu" 
> <minios-devel-bounces@xxxxxxxxxxxxxxxxxxxx on behalf of haibo.xu@xxxxxxx> 
> wrote:
>
>     Hi,
>
>     As discussed with Simon and Ricardo in the email loop,
>     Solo5(formerly known as ukvm) would make most sense as
>     another and new platform library for the unikraft, this
>     patch set will try to enable the solo5 platform support.
>
>     Currently, the implementation has been tested with the
>     hello-world application on both x86-64 and arm64 machine.
>
>     Regards,
>
>     Haibo
>
>     Haibo Xu (6):
>       plat/solo5: Add solo5 source code as a submodule
>       plat/solo5: Add solo5 platform Config.uk file
>       plat/solo5: Add solo5 platform link files.
>       plat/solo5: Add solo5 platform Makefile.uk
>       plat/solo5: Add the solo5 API declaration in solo5.h
>       plat/solo5: Add platform interface implementation
>
>      .gitmodules                      |   3 +
>      plat/Config.uk                   |   1 +
>      plat/Linker.uk                   |   1 +
>      plat/Makefile.uk                 |   1 +
>      plat/solo5/Config.uk             |   8 +
>      plat/solo5/Linker.uk             |  79 +++++++++
>      plat/solo5/Makefile.uk           |  30 ++++
>      plat/solo5/console.c             |  45 +++++
>      plat/solo5/include/solo5/setup.h |  49 ++++++
>      plat/solo5/include/solo5/solo5.h | 280 +++++++++++++++++++++++++++++++
>      plat/solo5/io.c                  |  41 +++++
>      plat/solo5/irq.c                 |  28 ++++
>      plat/solo5/lcpu.c                |  75 +++++++++
>      plat/solo5/link64.lds            |  94 +++++++++++
>      plat/solo5/memory.c              |  81 +++++++++
>      plat/solo5/setup.c               |  42 +++++
>      plat/solo5/shutdown.c            |  37 ++++
>      plat/solo5/src-solo5             |   1 +
>      plat/solo5/time.c                |  56 +++++++
>      19 files changed, 952 insertions(+)
>      create mode 100644 .gitmodules
>      create mode 100644 plat/solo5/Config.uk
>      create mode 100644 plat/solo5/Linker.uk
>      create mode 100644 plat/solo5/Makefile.uk
>      create mode 100644 plat/solo5/console.c
>      create mode 100644 plat/solo5/include/solo5/setup.h
>      create mode 100644 plat/solo5/include/solo5/solo5.h
>      create mode 100644 plat/solo5/io.c
>      create mode 100644 plat/solo5/irq.c
>      create mode 100644 plat/solo5/lcpu.c
>      create mode 100644 plat/solo5/link64.lds
>      create mode 100644 plat/solo5/memory.c
>      create mode 100644 plat/solo5/setup.c
>      create mode 100644 plat/solo5/shutdown.c
>      create mode 160000 plat/solo5/src-solo5
>      create mode 100644 plat/solo5/time.c
>
>     --
>     2.17.1
>
>
>     _______________________________________________
>     Minios-devel mailing list
>     Minios-devel@xxxxxxxxxxxxxxxxxxxx
>     https://lists.xenproject.org/mailman/listinfo/minios-devel
>
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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