xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Antti Kantee <pooka@iki.fi>
To: Ian Campbell <Ian.Campbell@citrix.com>, Lele MA <lelema.zh@gmail.com>
Cc: xen-devel <xen-devel@lists.xen.org>
Subject: Re: Error when Glib cross compiled into Mini-OS without the support of "_POSIX_THREADS"
Date: Thu, 25 Sep 2014 15:41:14 +0000	[thread overview]
Message-ID: <5424379A.5010308@iki.fi> (raw)
In-Reply-To: <1411649722.2053.5.camel@kazak.uk.xensource.com>

On 25/09/14 12:55, Ian Campbell wrote:
> On Thu, 2014-09-25 at 20:50 +0800, Lele MA wrote:
>>
>>> AFAIK mini-os doesn't supply a POSIX thread API, correct.
>>>
>>> I don't think anything else in the current stubdom infra (e.g. newlib)
>>> supplies one either.
>>>
>>>> If so, can I still use the glib in the Mini-OS without the support of
>>>> "_POSIX_THREADS"?
>>>
>>> That would be a question for the glib maintainers. At a minimum I'd
>>> expect you would need to port glib to the mini-os thread API.
>>>
>>> But, before you go down that route I think you should consider the new
>>> rumpkernels work which is going on.
>>>
>>> rumpkernels run on a mini-os/Xen and provide a BSD derived POSIX like
>>> environment, which I expect will include pthreads. Depending on your
>>> application it may well be very worthwhile to start from that (I think
>>> it most likely would be, but I don't know what you are actually doing).

Yes, there's support for pthreads with rump kernels on Xen (uses 
unmodified NetBSD libpthread).

>> Thank you so much!
>>
>> My ultimate goal is to use libvmi in mini-os. And libvmi needs glib's support. So I needs to cross-compile glib into mini-os firstly.
>>
>> The mini-os kernel is essential for our project,
>
> Note that rumpkernels use mini-os (or at least large parts of it) under
> the hood. I'd strongly recommend you investigate rumpkernels before
> embarking on any direct porting work.

Yes, it uses minios in a sort of "firmware" sense.  You can still access 
the underlying minios from applications running as part of rumprun-xen 
... though generally speaking it's better to access things through one 
API instead of multiple.

The application-side interfaces (POSIX, TCP/IP, etc.) offered by 
rumprun-xen are complete enough that off-the-internet applications have 
a good chance of "just working" without any porting.

>>   so I probably have to port the glib to mini-os thread API. Can you
>> give me some tips on how to port a thread API ?
>
> I've no idea what it actually looks like, sorry. You'll probably need to
> dize into the code.
>
>> I am a newbie to mini-os thread
>> API, any help would appreciated. Thank you!

If you really want to roll your own, you can check how libpthread for 
rumprun-xen is integrated:
https://github.com/rumpkernel/rumprun-xen/blob/92b81fde24beb5dfaec1c2eec3960a61cc6dd5e0/lib/_lwp.c

Note: the above implements the _lwp API of NetBSD, which is what NetBSD 
libpthread uses to control the kernel threads it manages.  The 
integration points to minios should be quite clear, nonetheless: 
create_thread(), block(), wake(), schedule(), ...

   - antti

  reply	other threads:[~2014-09-25 15:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-25  9:08 Error when Glib cross compiled into Mini-OS without the support of "_POSIX_THREADS" Lele MA
2014-09-25 10:56 ` Ian Campbell
2014-09-25 12:50   ` Lele MA
2014-09-25 12:55     ` Ian Campbell
2014-09-25 15:41       ` Antti Kantee [this message]
2014-09-25 16:56     ` Marcin Cieslak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5424379A.5010308@iki.fi \
    --to=pooka@iki.fi \
    --cc=Ian.Campbell@citrix.com \
    --cc=lelema.zh@gmail.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).