Hi,
I am back with my problem with UTCB IPC. To sum up the context :
I use pure l4env applications. Here is the scenario between my server
and my client :
1. client makes an UTCB IPC to manager. Manager does an
l4rm_area_reserve, creates a rcv_fpage, creates worker and sends back
worker thread id to client.
2. client allocates memory and associated flexpage and sends it to server.
3. UTCB IPC is sent to worker with 3 parameters :
- on client side : utcb->values=0xbff00200: arg1=0x2 arg2=…
[View More]0x1 arg3=0x6
- on server side : utcb->values=0xbff00200: arg1=0x241401 arg2=0x0
arg3=0x7069776c
It seems that 0xbff00200 is not mapped on the same memory on client
and server side. As there is no problem for first IPC (utcb->values is
also 0xbff00200), is there any potential problem with flexpage ?
As utcb->values is still the same, what happens if several threads try
to make UTCB IPC ?
Another question : when I link my application with liblogserver.a, I
have strange logs :
.rm.sem.mainMain function returned.
It seems that .rm .sem and .main are added by l4env, but I didn't find where.
Regards
Marc
[View Less]
Hi list,
I am playing with the examples in package cpu_reserve (i.e. res_rt_sched).
However, for some reason the code doesn't work as expected.
In the worker-thread the function l4_rt_next_period() returns error nr
32 which is an IPC error, I guess its waiting for a msg from the
reservation server here.
Here is the sample output (qemu log):
Welcome to Fiasco(ia32)!
DD-L4(v2)/ia32 microkernel (C) 1998-2009 TU Dresden
Rev: r429 compiled with gcc 4.2.4 for Intel Pentium []
Performance-…
[View More]critical config option(s) detected:
CONFIG_NDEBUG is off
Enabling special fully nested mode for PIC
Using the PIT (i8254) on IRQ 0 for scheduling
SERIAL ESC: allocated IRQ 4 for serial uart
SERIAL ESC: allocated IRQ 4 for serial uart
Not using serial hack in slow timer handler.
Absolute KIP Syscalls using: Sysenter
CPU: GenuineIntel (6:3:3:0) Model: Pentium II (Klamath) at 2528 MHz
32 KB L1 I Cache (8-way associative, 64 bytes per line)
32 KB L1 D Cache (8-way associative, 64 bytes per line)
2048 KB L2 U Cache (8-way associative, 64 bytes per line)
Freeing init code/data: 20480 bytes (5 pages)
Calibrating timer loop... done.
SIGMA0: Hello!
KIP @ 1000
Found Fiasco: KIP syscalls: yes
allocated 4KB for maintenance structures
Roottask.
Command line found: "(nd)/modules/roottask"
260656kB ( 254MB) total RAM (reported by bootloader)
232760kB ( 228MB) received RAM from Sigma0
6604kB ( 7MB) reserved RAM for RMGR
Received I/O ports 0000-ffff
Attached irqs = [ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 A B C D E F 10 11 ]
Roottask: Loading 6 modules.
#05: loading "(nd)/modules/l4io"
from [0212b000-02398e9a] to [00c20000-00c443b5][00c45000-00cb3000]
entry at 0005a06c via trampoline page code
symbols at [0ea31000-0ea87000] (344kB), lines at [0ea17000-0ea31000] (104kB)
#06: loading "(nd)/modules/dm_phys"
from [02399000-02434537] to [01500000-015138d7][01514000-0151e000]
entry at 0005b070 via trampoline page code
symbols at [0ea12000-0ea17000] (20kB), lines at [0ea04000-0ea12000] (56kB)
#07: loading "(nd)/modules/names"
from [02435000-0247685b] to [002d0000-002d67b7][002d7000-002e2000]
entry at 0005c06c via trampoline page code
symbols at [0ea02000-0ea04000] (8kB), lines at [0e9fc000-0ea02000] (24kB)
#08: loading "(nd)/modules/log"
from [02477000-024b5702] to [00400000-00406eca][00407000-00439828]
entry at 0005d06c via trampoline page code
symbols at [0e9fa000-0e9fc000] (8kB), lines at [0e9f4000-0e9fa000] (24kB)
#09: loading "(nd)/modules/cpu_reserved"
from [024b6000-0256af2c] to [009b0000-009cc631][009cd000-009e4000]
entry at 0005e074 via trampoline page code
symbols at [0e9ef000-0e9f4000] (20kB), lines at [0e9da000-0e9ef000] (84kB)
#0a: loading "(nd)/modules/res_rt_sched"
from [0256b000-02601c8b] to [01000000-01017a61][01018000-0102f000]
entry at 00060074 via trampoline page code
symbols at [0e9d5000-0e9da000] (20kB), lines at [0e9c3000-0e9d5000] (72kB)
cpu_rese| Scheduling granularity: 1000�s
res_rt_s| main(): Using cpu reservation server
res_rt_s| [A.3] cpu_reserve/examples/res_rt_sched/main.c:55:worker():
res_rt_s| Error: l4_rt_next_period(): Unknown (unregistered) error
res_rt_s| [A.3] cpu_reserve/examples/res_rt_sched/main.c:68:worker():
res_rt_s| Error: l4_rt_next_period(): Unknown (unregistered) error
res_rt_s| [A.3] cpu_reserve/examples/res_rt_sched/main.c:68:worker():
...
Any ideas what I am doing wrong? Thanks in advance.
Best regards,
Andre
[View Less]
Hi,
I'd like to get the source code of ddekit but it seems that I cannot
get it from the SVN repository.
I first do $ svn co -N http://svn.tudos.org/repos/tudos/trunk tudos
Then I followed the step in
http://www.inf.tu-dresden.de/index.php?node_id=1584&ln=en, but always
get some error whenever checking out the linux header files.
da-zhengs-macbook:tudos dazheng$ ./repomgr co l4env
...
A l4/pkg/linux-24-headers/include/linux/netfilter_ipv4/ipt_REJECT.h
svn: In directory 'l4/pkg/linux-…
[View More]24-headers/include/linux/netfilter_ipv4'
svn: Can't copy
'l4/pkg/linux-24-headers/include/linux/netfilter_ipv4/.svn/tmp/text-base/ipt_TCPMSS.h.svn-base'
to 'l4/pkg/linux-24-headers/include/linux/netfilter_ipv4/.svn/tmp/ipt_TCPMSS.h.tmp.tmp':
No such file or directory
svn update failed at ./repomgr line 349.
da-zhengs-macbook:pkg dazheng$ svn up linux-26-headers
...
A linux-26-headers/include/linux/netfilter_ipv4/ipt_REJECT.h
svn: In directory 'linux-26-headers/include/linux/netfilter_ipv4'
svn: Can't move source to dest
svn: Can't move
'linux-26-headers/include/linux/netfilter_ipv4/.svn/tmp/prop-base/ipt_TCPMSS.h.svn-base'
to 'linux-26-headers/include/linux/netfilter_ipv4/.svn/prop-base/ipt_TCPMSS.h.svn-base':
No such file or directory
da-zhengs-macbook:pkg dazheng$ svn up dde
...
A dde/linux26/contrib/include/linux/netfilter_ipv4/ipt_REJECT.h
svn: In directory 'dde/linux26/contrib/include/linux/netfilter_ipv4'
svn: Can't copy
'dde/linux26/contrib/include/linux/netfilter_ipv4/.svn/tmp/text-base/ipt_TCPMSS.h.svn-base'
to 'dde/linux26/contrib/include/linux/netfilter_ipv4/.svn/tmp/ipt_TCPMSS.h.tmp.tmp':
No such file or directory
Is the SVN repository correct?
Zheng Da
[View Less]
Dear all
Now I try to add some functions and data structures in Fiasco.
I had added several data structures into "class Context" and implement some
functions to manipulate these data structures.
My goal is to add multiple ready queues in Fiasco. So I add the
corresponding enqueue function in ready_enqueue() to add the Context into my
own ready queue.
(But I don't change the way to choose highest Context, I only add the queue
and try the functionality of these queue.)
It seems to be valid for …
[View More]simple environment. But when I load L4Linux and I
want to group all threads owned by L4Linux into my ready queue, it got some
unpredictable page fault error.
-------------------------------------------------------------------------------
...
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 17
Freeing init memory: 128K
init started: BusyBox v1.13.2 (2009-05-13 02:16:43 CST)
starting pid 13, tty '/dev/console': '-/etc/init.d/rcS'
Fiasco BUG: pfa=c0440084 err=400017 pc=f001f14c
--Fiasco BUG: Invalid TCB access (locked)------------------PC: f00080a8
[rcS] (10.00) jdb:
-------------------------------------------------------------------------------
The error is caused from the enqueue function which changes the data
structures in class Context. But the error sometimes happened before
l4x.idler0 thread creation, sometimes I can get into shell correctly and
error happened when I use unix commands (which creates new thread for this
unix commands). The error is unpredictable.
Because the other threads can work correctly, I guest that there are some
issues in L4Linux to cause this error from the modification of class
Context.
Can anyone give me any idea? Thanks very much!!
Best Regards,
Sean
[View Less]
Thank you.
I gave the idea a little thought, and I think that the next OS needs
another layer on top of the UI technology that directly talks to the
user. I think that to directly integrate the user into the system,
there has to be some kind of mind-mapping interaction with the OS as
part of the capabilities that are offered to the user in the UI.
Beyond this, the user needs to integrate into the "cloud," which is
the rest of society, through the mind mapping, which then becomes
minds-…
[View More]mapping. (??)
John
On Thu, Jun 11, 2009 at 12:03 PM, Bahadir Balban<bahadir(a)l4dev.org> wrote:
> John van V. wrote:
>>
>> Hello Bahadir,
>>
>> Sounds interesting. I have two questions:
>>
>> You mention a "native OS components in one system." Does it
>> anticipate a specific UI?
>>
>> Also is it specifically for ARM?
>>
>> Thanks in advance, John
>
> Hi John,
>
> Currently it contains two userspace components, the memory management and
> vfs services. So there is no UI yet. On the next few releases there will be
> a port of the Xynth windowing system.
>
> It is very portable, only that ARM is supported as the first architecture.
>
>
> Thanks,
>
> --
> Bahadir Balban
>
--
Empathy
http://thinman.com/empathy
Photography
http://thinman.com/photography
Technology
http://thinman.com
[View Less]
More info on Microsoft Research: http://research.microsoft.com
More info about Galen Hunt:
http://research.microsoft.com/en-us/people/galenh/
Regards, Ron.
-------- Original Message --------
From: Galen Hunt
Sent: Thursday, June 11, 2009 8:51
Subject: MSR OS Group RSDE Position
Friends,
The Microsoft Research (MSR) Redmond OS group is looking for an RSDE.
We're looking for someone who can code like the wind and is interesting
in gaining great breadth of experience. I think no other group …
[View More]in
Microsoft offers an equivalent opportunity to write OS, compiler, and
tools code. As an example, one of the RSDEs in my group implemented
ACPI for Singularity, most of an ARM JIT for the CLR, and a file system
in the last two years. We're favorable toward candidates who want to do
a tour of duty in MSR before jumping back to product, or want to build
their experience and publication record before going to a top-five
school for graduate work.
If you know of anyone who would be interested, please ask them to
contact me.
Here is the job description:
The Microsoft Research Operating Systems Group is looking for an
exceptionally strong engineer (RSDE) to join our team. We are a
tight-knit, world-leading research team with the charter of prototyping
new OS-related advances and working closely with product teams on tech
transfer. Our team frequently publishes in top conferences such as
SOSP, OSDI, PLDI, and POPL. Three of 23 papers in SOSP 2009 were
co-authored by members of our group. In the recent past, we built the
Singularity OS, prototyped a file system for Phase Change Memory (PCM),
published the first research on verification of practical garbage
collectors, and experimented with new OS configurations for mobile
computing.
We are looking for a candidate with exceptionally strong coding skills
and a passion to change the world. The ideal candidate will have a B.S.
or higher in computer science or a closely related field and at least 3
years of experience either building product quality code or coding in a
research environment. Experience with C, C++, and assembly is required.
Experience writing kernel-level OS code or compilers is not strictly
required, but highly desirable. While not strictly a requirement,
preference will be given to candidates who can produce 1,000 lines of
code or more per week when building prototypes. Interest and eagerness
to work in a wide range of systems projects each year is highly desired.
Internal candidates should have a high ratio of exceeded ratings on
their annual reviews.
Thanks
galen
[View Less]
Hi Everyone,
I would like to announce my ongoing work on a new L4 microkernel called
Codezero. Codezero is a modern L4 microkernel implementation written in
C. It targets embedded platforms, supports the ARM architecture, and
aims to implement both virtualization and native OS components in one
system.
Codezero has a design and API that is similar to existing L4
microkernels such as Pistachio.
The software currently comes with two services: First one is the default
pager called MM0 …
[View More]that provides memory management capabilities with a
POSIX-like API. It supports proper demand paging and implements calls
such as fork, clone, execve, exit, mmap, shm.
The second service is called FS0 and it implements the virtual
filesystem layer. This service supports calls such as open, close, read,
write, lseek, stat, fsync, etc.
The software comes with a GPLv3 license, and a copyright share agreement
option for contributions. The source code base is fairly clean and easy
to play with. I encourage anybody interested in development to join.
For more details:
http://www.l4dev.org
Thanks,
--
Bahadir Balban
[View Less]
Dear
Now I am tracing the source code of cpu reservation server in
l4/pkg/cpu_reserve directory. And I got several questions...
1. The bottom of cpu reservation server is implemented by
l4_rt_add_timeslice(), l4_rt_set_period(), l4_rt_begin_strictly_periodic()
functions. And these functions are defined in
l4/pkg/l4sys/include/ARCH-x86/rt_sched-impl.h
which calls l4_rt_generic() function.
Function l4_rt_generic() is implemented by inline assembly, and it seems to
call the system call "…
[View More]thread_schedule".
Because these functions only appears in ARCH-x86 directory, do they
support on ARM architecture?
If not, how can I implement similar behaviors of these functions?
Where can I find the document about the L4 system call API ? I can't
really understand the behavior of these functions.
2. When system contains three user threads, I want to control Fiasco
scheduler not to schedule one thread in these three threads during one time
interval. How can I implement it?
The simplest way seems to control this thread into un-running state. How
can I achieve this by a supervisal server?
I'm sorry for my poor English and lengthy question.
I'm glad if you give me some hints or corrections.
Thanks a lot!
Best Regards,
Sean
[View Less]