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,
I've got some questions about FLIPS functionality.
1. Does flips contain internal routing mechanism? Can I get access to
routing tables through NET_LINK socket interface?
2. Does flips contain netfilter or something like this? If yes, can I get
access to it?
3. What about SNAT/IPmasquerading? Is it supported in some way?
4. Does flips support IPsec? Maybe another L4 package could provide such a
support? AFAIK there was "Viaduct" and "nethub" projects. Seems that nethub
is discontinued. I …
[View More]believe there should be some results. Does someone keep
working in this direction?
Best Regards, Alexander Valitov
--
View this message in context: http://www.nabble.com/Questions-about-FLIPS-tp22744703p22744703.html
Sent from the L4 mailing list archive at Nabble.com.
[View Less]
while we could specify the initial servers on grub.conf so that they would
run when the system reboots, I'm wondering how could I dynamically load L4
servers after that? Any help would be appreciated
--
View this message in context: http://www.nabble.com/L4-Server-Dynamic-Loading-tp22769741p22769741.html
Sent from the L4 mailing list archive at Nabble.com.
Hi,
It seems that file l4/pkg/l4vfs/lib/libc_backends/socket_io/socket.c
misses recvmsg() function.
There is send(), sendto(), sendmsg(), recv(), recvfrom(), but no recvmsg().
Maybe it's just oversight?
Best regards,
Alexander Valitov
--
View this message in context: http://www.nabble.com/socket-libc-backend-misses-recvmsg%28%29-tp22722460p2…
Sent from the L4 mailing list archive at Nabble.com.
Hi l4-hackers,
I am currently having some issues with dice-3.3:
First of all, the dice-generated code differs in header- and client file,
meaning that the header defines functions with
int DICE_CV
somefunction()
while the outcoming c-file is
int
somefunction()
This leads to compile errors due to conflicting declarations...
But as soon as you remove DICE_CV, everything compiles fine.
The second problem I have regards IPC-calls:
I am using the latest otc-snapshot (2008-12-10 with …
[View More]l4linux-2.6.27) and have
written a small IDL-interface as follows:
dummy.idl:
==
interface dummy
{
void hello(void);
}
==
The server (running under L4Linux) registers itself at the names-service as
"dummy" and starts the server_loop... It implements the dummy_hello_component as
follows:
==
void
dummy_hello_component (CORBA_Object _dice_corba_obj,
CORBA_Server_Environment *_dice_corba_env)
{
/* do nothing*/
printf("Hello\n");
}
==
Additionally, I have written 2 clients, one native L4 application and one based
on L4Linux, which implement the client-stub as follows:
==
static l4_threadid_t threadId;
static CORBA_Environment env;
names_query_name("dummy", &threadId);
LOG_printf("Dummy found with threadId: %x\n",threadId);
dummy_hello_call(&threadId, &env);
==
The native client (started via bmodfs) receives a pagefault, cause it is trying
to write?! to address 0:
==
dummytest| Dummy found with threadId: 11a0001
dummytest| L4RM: [PF] write at 0x00000000, ip 02000272, src 11.02
dummytest| [11.0] l4rm/lib/src/pagefault.c:81:__unknown_pf():
dummytest| unhandled page fault
--PANIC, 'g' for exit------------------------------------IP: 02005755
[dummy.rm] (11.00) jdb:
==
And the L4Linux-client crashes with a segfault:
==
dummy_t[42]: segfault at 2 ip 08048312 sp bf4092ec error 6 in
dummy_test[8048000+76000]
==
The strange thing is: If I compile the idl-file with dice-3.2.1, the dummy
example works, BUT as soon as my interfaces get more complex, e.g., something
like this:
int write ([in] long start,
[in] long offset,
[in] long bytes_to_write,
[in, size_is(write_len), max_is(MAX_PAGE_SIZE)] char *write_buffer,
[out] long *write_len);
IPC crashes with pagefaults / segfaults again even with dice-3.2.1...
My Fiasco-config is attached.
Do you have any ideas where the problem might be?
Do I have to pay attention to specific configuration options, if the IPC-server
is running in an L4Linux?
Thanks in advance and best regards,
Marcel Selhorst
--
Sirrix AG security technologies - http://www.sirrix.com
Marcel Selhorst eMail: m.selhorst(a)sirrix.com
Tel +49(234) 61 0071-199 Fax +49(234) 61 0071-599
get my public key from keyserver, key id: 0x7C9821CC
Fingerprint 4138 E617 E62E 79D3 E663 BE5A 14E7 1CD8 7C98 21CC
Vorstand: Ammar Alkassar (Vors.), Ahmad-Reza Sadeghi, Christian Stüble
Vorsitzender des Aufsichtsrates: Prof. Dr. Kai Rannenberg
Sitz der Gesellschaft: Homburg/Saar, HRB 3857 Amtsgericht Saarbrücken
This message may contain confidential and/or privileged information.
If you are not the addressee, you must not use, copy, disclose or
take any action based on this message or any information herein.
If you have received this message in error, please advise the sender
immediately by reply e-mail and delete this message.
#
# Automatically generated make config: don't edit
# Fiasco kernel version: SVN
# Fri Jan 30 14:59:12 2009
#
#
# Target configuration
#
CONFIG_IA32=y
# CONFIG_AMD64 is not set
# CONFIG_ARM is not set
CONFIG_PF_PC=y
# CONFIG_PF_UX is not set
# CONFIG_PF_REALVIEW is not set
# CONFIG_PF_INTEGRATOR is not set
# CONFIG_PF_SA1100 is not set
# CONFIG_PF_XSCALE is not set
CONFIG_ABI_V2=y
# CONFIG_ARM_PXA is not set
# CONFIG_ARM_SA is not set
# CONFIG_ARM_920T is not set
# CONFIG_ARM_926 is not set
# CONFIG_ARM_1176 is not set
# CONFIG_ARM_MPCORE is not set
# CONFIG_ARM_CORTEX_A8 is not set
# CONFIG_IA32_486 is not set
CONFIG_IA32_586=y
# CONFIG_IA32_686 is not set
# CONFIG_IA32_P2 is not set
# CONFIG_IA32_P3 is not set
# CONFIG_IA32_P4 is not set
# CONFIG_IA32_PM is not set
# CONFIG_IA32_K6 is not set
# CONFIG_IA32_K7 is not set
# CONFIG_IA32_K8 is not set
# CONFIG_AMD64_K8 is not set
CONFIG_SCHED_PIT=y
# CONFIG_SCHED_RTC is not set
# CONFIG_SCHED_APIC is not set
# CONFIG_WORKAROUND_AMD_FPU_LEAK is not set
CONFIG_REGPARM3=y
#
# Kernel options
#
CONFIG_HANDLE_SEGMENTS=y
# CONFIG_PL0_HACK is not set
CONFIG_TASK_CAPS=y
# CONFIG_USER_LOCKS is not set
CONFIG_CONTEXT_4K=y
CONFIG_IO_PROT=y
# CONFIG_IO_PROT_IOPL_3 is not set
CONFIG_SYNC_TSC=y
CONFIG_FINE_GRAINED_CPUTIME=y
#
# Debugging
#
CONFIG_INLINE=y
# CONFIG_NDEBUG is not set
# CONFIG_NO_FRAME_PTR is not set
# CONFIG_STACK_DEPTH is not set
# CONFIG_LIST_ALLOC_SANITY is not set
# CONFIG_BEFORE_IRET_SANITY is not set
CONFIG_GSTABS=y
# CONFIG_WATCHDOG is not set
CONFIG_SERIAL=y
CONFIG_JDB=y
# CONFIG_JDB_LOGGING is not set
# CONFIG_JDB_ACCOUNTING is not set
# CONFIG_JDB_MISC is not set
CONFIG_POWERSAVE_GETCHAR=y
# CONFIG_WARN_NONE is not set
# CONFIG_WARN_WARNING is not set
CONFIG_WARN_ANY=y
#
# Compiling
#
CONFIG_CC="gcc"
CONFIG_CXX="g++"
CONFIG_HOST_CC="gcc"
CONFIG_HOST_CXX="g++"
# CONFIG_VERBOSE is not set
# CONFIG_MAINTAINER_MODE is not set
CONFIG_LABEL=""
CONFIG_EXPERIMENTAL=y
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
CONFIG_WARN_LEVEL=2
CONFIG_XARCH="ia32"
CONFIG_IA32_TARGET="Intel Pentium"
CONFIG_ABI="v2"
CONFIG_DECEIT_BIT_DISABLES_SWITCH=y
[View Less]
Hi list,
I am working on a port of an Ethernet-based fieldbus stack to TUDOS. The
stack is a Linux kernel module so I am utilizing DDE as a wrapper for this.
Things seem to work like this: the module creates a kernel thread which
does the network polling in an endless loop. The loop basically looks
like this:
while (1)
receive_data()
process_data()
send_data()
schedule_func()
Here, schedule_func() does the following:
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(1)…
[View More];
Which I interpret as something like wait for 10ms (assume HZ==100) or an
event to occur and then restart the loop. schedule_timeout() creates a
new timer with the specified timeout and calls plain schedule().
Ok, this works quite good up to an arbitrary point where the complete
system stops working. Sometimes, the system runs 2min, sometimes 1h and
sometimes 3h, so it varies a lot. After the stuck occurs, using jdb, I
see the kernel_thread waiting for a message to be woken up. On the other
hand, the timer_thread which has to throw this messages is in idle state.
I am still a L4 beginner, especially in debugging its subsystems.
However, for me that looks like we lost a timer event somewhere. I
replaced schedule_timeout() with msleep(10) which omits the timer stuff
and that works for me here for hours without any stuck.
Before further tracking down this issue I want to make sure that you
guys don't have any patch pending that fixes that problem, have u?
Best regards,
Andre
[View Less]
Hi,
I'm porting some Linux application to L4Env using your ulibc port.
The application uses fnmatch() function from libc.
For some reason this function is absent in
BUILD-DIR/lib/x86_586/libuc_c.a file, but at the same time
BUILD-DIR/include/uclibc/fnmatch.h is present.
So compilation completes without error, but linkage fails.
Was it done intentionally?
./l4/pkg/uclibc/lib/uclibc/Makefile does not even try to compile
./l4/pkg/uclibc/lib/contrib/uclibc/libc/misc/fnmatch/fnmatch.c.
See …
[View More]DIRS variable definition.
If it was done intentionally. Why the header is in the way?
Best Regards, Alexander Valitov
--
View this message in context: http://www.nabble.com/fnmatch%28%29-is-absent-in-ulibc-port-tp22702455p2270…
Sent from the L4 mailing list archive at Nabble.com.
[View Less]
---------------------------- Original Message ----------------------------
Subject: Re: Grub Question + some other information needed
From: mcs082803(a)cse.iitd.ernet.in
Date: Tue, March 24, 2009 10:53 pm
To: "Adam Lackorzynski" <adam(a)os.inf.tu-dresden.de>
--------------------------------------------------------------------------
Thanks for the reply. I don't know why I can't get any input from the
keyboard, i.e. getchar, scanf,etc. all hang the system. i am attaching a
code …
[View More]that doesn't work
FYI, I am using the loader with bmodfs to load (Don't think that can cause
a problem)
Regards,
Ashish
> Hi,
>
> On Mon Mar 23, 2009 at 21:41:34 +0530, mcs082803(a)cse.iitd.ernet.in wrote:
>> I know that a grub different from the standard is used. I downloaded the
>> grub on Adam's site but have no idea how to get that diff file to work.
>> There is a ReadMe called as grub-0.97-os.3.README that gives some info
>> but
>> I don't just get the fact that it is to boot from network.
>
> Well, os.3 is just mentions it because this is one of the top features
> of my version as it allows to load files via network on any recent
> system. Original Grub1 does not offer that and is not usable for those
> type of scenarios.
>
>> I am just booting from the hard disk using standard grub (with -modaddr
>> option used with bootstrap), but now I need to use the vbeset command
>> (and
>> maybe others in future), so I really need that grub.
>>
>> I have done these
>>
>> $ wget ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz
>> $ wget
>> http://os.inf.tu-dresden.de/~adam/grub/0.97/grub-0.97-os.7.diff.gz
>> $ tar xzf grub-0.97.tar.gz
>> $ cd grub-0.97
>> $ zcat ../grub-0.97-os.7.diff.gz | patch -p0
>>
>> so what i do next? just install this grub (using install) or something
>> else? because the next steps in readme seem like specific for diskless
>> booting from some network.
>
> You compile it, the usual way with calling configure and make.
>
>> and what version of adam's grub should I download (i used the
>> grub-0.97-os.7.diff.gz because it seemed latest).
>
> Yes, latest is best.
>
>> some other things (unrelated to above) -- can i make programs that could
>> write output to some file on hard disk. Is somewhere a reference manual
>> that gives info about what datatypes and functions can i use in a
>> general
>> program i write, e.g. to do something equivalent of scanf,malloc,etc.
>
> libc like functions like scanf and malloc work as they shall.
> Writing to disk is not as easy in a multi-server system as you need a
> file-system and a disk driver to actually get some from and to the disk.
> The probably easiest way is to use L4Linux to store data on disk.
>
>
>
> Adam
> --
> Adam adam(a)os.inf.tu-dresden.de
> Lackorzynski http://os.inf.tu-dresden.de/~adam/
>
> _______________________________________________
> l4-hackers mailing list
> l4-hackers(a)os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
>
[View Less]
Right now I'm working on a project which utilizes Fiasco/L4Env/L4Linux
environment, so I'm just trying to set it up on my workstation.
Unfortunately, I have encountered some problems which bothered me for days.
Could anybody help me out? Any help or suggestions would be appreciated,
Thank you.
Here is the boot information when I try to boot L4linux: (I have also
attached a screen shot)
..................................................
loader : vmlinux: starting sigma0-style application
…
[View More]loader : vmlinux: loading binary
loader : vmlinux,#d: Entry at 00009f3c => 00400000
loader : vmlinux,#d: Started
loader : vmlinux,#d: Double PF (r) at 00000000 eip 00000000 (D.00)
-- Double PF,"g" for kill------------------------------IP: 013043a5
[loader.pager] (c.03) jdb:
http://www.nabble.com/file/p22525172/Double_PF.jpg
Here is some of my setup info:
VMware version: 6.5
Host OS: Fedora 10 (Linux Kernel Version: 2.6.27)
Gcc Version: 4.3.2
Grub Version: 0.97
L4Env config: default
build command: make oldconfig O=/path-to-buildu-dir && make
O=/path-to-buildu-dir
Fiasco config: default + 'Handle and preserve segments' option was enabled
CPU type: Intel Pentium / AMD k5
build command:
cd kernel/fiasco && make BUILDDIR=/path-to-buildk-dir
cd /path-to-buildk-dir && make menuconfig
make
L4Linux config: x86-native_defconfig + L4 build directory was set to
'/path-to-buildu-dir'
build command:
cd l4linux-2.6 && make x86-native_defconfig && make menuconfig
make
Grub Config:
title L4Linux (Fiasco/L4Env/L4Linux)
kernel (hd0,0)/boot/l4linux/bootstrap -modaddr=0x02000000
module (hd0,0)/boot/l4linux/main -nokdb -serial_esc
module (hd0,0)/boot/l4linux/sigma0
module (hd0,0)/boot/l4linux/roottask task modname "bmodfs" attached 5
modules
module (hd0,0)/boot/l4linux/names
module (hd0,0)/boot/l4linux/log
module (hd0,0)/boot/l4linux/dm_phys --isa=0x00800000
module (hd0,0)/boot/l4linux/simple_ts -t 300
module (hd0,0)/boot/l4linux/rtc
module (hd0,0)/boot/l4linux/l4io
module (hd0,0)/boot/l4linux/bmodfs
module (hd0,0)/boot/l4linux/cfg/l4linux26.cfg
module (hd0,0)/boot/l4linux/libloader.s.so
module (hd0,0)/boot/l4linux/libld-l4.s.so
module (hd0,0)/boot/l4linux/vmlinux
module (hd0,0)/boot/l4linux/drops-rd.rd (I download this file from
L4linux website)
module (hd0,0)/boot/l4linux/loader --fprov=BMODFS l4linux26.cfg
l4linux26.cfg:
sleep 1
task "vmlinux" "mem=64M load_ramdisk=1 ramdisk_size=16384 root=/dev/ram
l4env_rd=drops-rd.rd"
all_sects_writable
allow_vga
BTW: When I tried to compile L4Env, the linker complains it couldn't find
libz.a(by -lz option), so I build libz.a under l4/pkg/zlib separately and
copied it to the build/lib directory manually, and the whole thing works!
I'm not sure whether it's a problem of the Makefile or a problem of my
configuration environment.
--
View this message in context: http://www.nabble.com/L4linux-Installation-Problem%28Double-Page-Fault%29-t…
Sent from the L4 mailing list archive at Nabble.com.
[View Less]