Re: how to use genode on riscv

2018-03-14 Thread Sebastian Sumpf
Hello Dong Du,

On 12.03.2018 12:45, Dd Nirvana wrote:
> Hi guys,
>       
>        I am so glad to know that genode has supported RISCV from v16.02.
> I have already read the
> article(http://genode.org/documentation/articles/riscv) which introduce
> how genode port the RISCV.
>        However, I am still a little confused about how to build a
> runnable genode image and how to  run it on riscv platform like spike.
> Could you give me any advices to do it?

Genode's support for RISC-V is currently very limited. For example,
there is no libc or any peripheral devices. Currently, RISC-V can be
tested on Genode using the spike emulator and our custom kernel, which
implements support for the RISCV 1.9 privileged ISA. So, in order to
test RISC-V make sure to have spike installed. You can find the version
we are using here:

https://github.com/ssumpf/riscv-isa-sim
https://github.com/ssumpf/riscv-fesvr

Please check out the 17.05 branches of both repositories. The fesvr
(front-end server) is required by the instruction emulator and has to be
build first. Please check the README.md files for build instructions.

With spike installed you want to create a Genode directory next:

> /tool/create_builddir riscv_spike
> cd /build/risc_spike

Next you may execute the log run script:

> make KERNEL=hw run/log

(make sure to have the Genode tool chain installed -
http://genode.org/download/tool-chain)

This will build the log scenario and execute it within spike. The actual
boot image can be found under the /build/riscv-spike/bbl/bbl
(Berkeley Boot Loader). BBL implements the machine mode and also piggy
backs the Genode image.

Regards,

Sebastian


 --
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Virtual machines from .vdi images

2017-11-01 Thread Sebastian Sumpf
Hi Chris,

On 31.10.2017 15:56, Chris Rothrock wrote:
> Here's the output from the ahci_bench (I left out the ROM header info to
> shorten the list).  It seems it's giving the same error trying to
> enumerate the AHCI controller on the PCI bus even though it sees the
> controller and the devices, the service isn't being advertised.  This is
> an AMD platform and, for reasons too long to go into, I need to be able
> to make this work with an AMD processor.  Where can I go from here to
> push forward on this effort to get the AHCI controller properly enumerated?
> 
> Genode 17.08-112-gee4ee6a 
> 3745 MiB RAM and 63254 caps assigned to init
> [init -> ahci_drv] --- Starting AHCI driver ---
> [init] child "acpi_report_rom" announces service "Report"
> [init] child "timer" announces service "Timer"
> [init] child "acpi_report_rom" announces service "ROM"
> [init -> acpi_drv] Found MADT
> [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0
> [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15
> [init -> acpi_drv] Found MCFG
> [init -> acpi_drv] MCFG BASE 0xe000 seg 0x0 bus 0x0-0xff
> [init] child "platform_drv" announces service "Platform"
> [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073)
> [ 0] sys_assign_pci: Invalid Hint (0x88)
> [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device
> 0:11.0 failed phys=0xe0088000 virt=0x1000
> [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19
> [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address
> 0xfee1, non-maskable
> [init -> ahci_drv] version: major=0x1 minor=0x300
> [init -> ahci_drv] command slots: 32
> [init -> ahci_drv] native command queuing: yes
> [init -> ahci_drv] 64-bit support: yes
> [init -> ahci_drv] number of ports: 6 pi: 0x3f
> [init -> ahci_drv]              #0: ATA
> [init -> ahci_drv]              #1: off (unknown device signature)
> [init -> ahci_drv]              #2: off (unknown device signature)
> [init -> ahci_drv]              #3: off (unknown device signature)
> [init -> ahci_drv]              #4: off (unknown device signature)
> [init -> ahci_drv]              #5: off (unknown device signature)
> 

it looks like the AHCI port scan returned a connected ATA device on port
zero, but is unable to initialize the device properly - most likely
because no interrupts are received after command submission. We already
had a lengthly remote debugging session with Ben [1] without any
success. It seems like AMD's AHCI controllers are either not standard
conform or might require additional initialization we are not aware of.
As a starting point you could instrument the 'Ahci::handle_irq' function
[2] in order to determine if any interrupts are received by the driver
at all.

Regards,

Sebastian

[1] https://github.com/genodelabs/genode/issues/1547
[2] /repos/os/src/drivers/ahci/ahci.cc


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Porting third-party code to Genode

2017-09-25 Thread Sebastian Sumpf
Hi Jörg,

as a small addition to Normans' answer, we also wrote a porting guide:

http://genode.org/documentation/developer-resources/porting

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Blocking wait for interrupt

2017-07-27 Thread Sebastian Sumpf
Hi Johannes,

On 07/27/2017 01:42 PM, Johannes Kliemann wrote:
> Hi Sebastian,
> 
> yes, that is the function I call from Genode.
> 
> And thanks in advance for helping me out.
> 

Good. I will try to explain how the Lx::Task approach is supposed to
work in this case:

Your task calls 'i2c_dw_xfer' which sends a request, creates a Linux
completion, and calls 'wait_for_completion_timeout'. This leads to a
blocking of the task and a call to the task scheduler. Since there
should be nothing to schedule at this point, the entrypoint will
eventually return to its "wait for RPC" code. When the waited for IRQ
occurs, the entrypoint receives a signal RPC and wakes up yet another
task, the IRQ task
(dde_linux/src/lx_kit/irq.cc:Lx_kit::Irq::Context::unblock). This task
calls all registered interrupt handlers ('handle_irq' same file). One of
those handlers should, behind your back, call 'complete' (I haven't
found the relevant source code for your case, but it is there) for the
completion your task is waiting for, which in turn should unblock your
task. This way a synchronous execution is accomplished. That is the theory.

Details:

'wait_for_completion_timeout'
(dde_linux/src/include/lx_emul/impl/completion.h) will call
'__wait_completion' which must be implemented by your driver. Please
refer to '__wait_completion' (dde_linux/src/lib/usb/lx_emul.cc) as a
guidance. The important part is to call 'block_and_schedule' for the
current task. Also notice, the 'complete' function in completion.h that
calls 'unblock' for the task within a completion. This should somehow be
called by your interrupt handler and lead to the re-scheduling of your
task when the IRQ tasks blocks again after interrupt handling.

By the way, these Lx::Taks are also called routine or coroutine in
literature and nothing more than a stack and a 'setjmp/longjmp' construct.

I hope this helps,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Blocking wait for interrupt

2017-07-27 Thread Sebastian Sumpf
Hi Johannes,

I looked into the i2c driver. Are we talking about the 'i2c_dw_xfer'
function?

Regards,

Sebastian

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Blocking wait for interrupt

2017-07-25 Thread Sebastian Sumpf
Hi Johannes,

On 07/25/2017 08:54 AM, Johannes Kliemann wrote:
> Hi,
> 
> I'm currently writing a dde_linux driver that requires to wait for an
> interrupt to be handled.
> It basically initializes the hardware and then waits for an event to
> occur. This event is usually triggered by the interrupt (respectively
> its handler) which occurs after hardware initialization.
> My problem is that this interrupt doesn't appear while the function
> triggering it didn't return. So when this function blocks to wait for
> the interrupt, a deadlock is created. Besides using the timer I tried to
> block the execution with a semaphore creating the same problem.
> Creating an async version is no option due to the architecture of the
> Linux driver.
> 
> How are interrupts handled in this case? What causes them to block and
> how can I work around this?
> 

If I gather your description correctly, you are executing Linux code
from the entrypoint context. If this code somehow blocks, lets say by
calling 'wait_event_interruptible' or something else, the EP cannot
receive signals, and therefore no interrupts. The solution to this
problem are 'Lx::Task'(s). All Linux code should be executed by these
tasks, which are able to block and can be unblocked by the EP upon
signal reception. A small example can be found under
'dde_linux/src/drivers/framebuffer/intel/main.cc', there the Linux code
is executed by a task in 'run_linux', which is woken up by the
'Policy_agent' signal handler.

Regards,

Sebastian

P.S. I hope you are porting a driver and not writing one from scratch ;)



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [GSoC] UEFI framebuffer task

2017-03-31 Thread Sebastian Sumpf
Hi Philipp,

On 03/30/2017 10:59 PM, Philipp Kerling wrote:
> Hi,
> 
> You can now review the code at 
> https://github.com/pkerling/genode/commit/4130907
> I have to admit that it's mostly copypaste from the AHCI driver.
> I tested it successfully with both base-hw and NOVA. My output is:
> 
> $ make run/nvme_test
> [...]
> Genode 17.02-148-g41309074e 
> 58 MiB RAM assigned to init
> [...]
> [init -> nvme_drv] NVMe demo
> [init -> nvme_drv] NVMe found (vendor: 0x8086 device: 0x5845 class: 0x10802)
> [init -> nvme_drv] BAR0: 0xfebf, size: 0x2000
> [init -> nvme_drv] Controller supports NVMe version 1.1.0
> [init -> nvme_drv] Memory pages from 4096 to 65536 bytes supported
> [init -> nvme_drv] 2048 maximum entries per queue
> [init -> nvme_drv] --- NVMe demo finished ---

I have had a look at your code and tested in on NOVA as well. No
objections from my side - good job.

Next I would suggest to finish your proposal (item 15) and mark it as
final until Monday.

Cheers,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [GSoC] UEFI framebuffer task

2017-03-28 Thread Sebastian Sumpf
Hi Philipp,

On 03/28/2017 10:17 AM, Philipp Kerling wrote:
> 
> Am Samstag, den 25.03.2017, 09:40 +0100 schrieb Sebastian Sumpf:
>> Sounds good, looking forward to your proposal.
> Thanks - I've submitted the draft. I'd be happy to hear any comments or
> suggestions you and the other team members might have.

Okay, I gonna have a look at it tomorrow.

> On another note, the microkernel devroom GSoC page recommends doing a
> small qualification task for the project. Do you have any suggestions
> here?

Maybe you could get started by accessing a register of the NVMHCI (like
a version register or similar). For this I would recommend to perform
the following steps:

1. Get Genode master
2. Start QEMU with NVME enabled (I would recommend NOVA as kernel)
3. Find and map the PCI I/O memory resource of the controller
4. Take advantage of Genode's MMIO framework and read a register of your
choice

Please feel free to ask questions,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [GSoC] UEFI framebuffer task

2017-03-25 Thread Sebastian Sumpf
Hi Philipp,

On 03/24/2017 09:47 AM, Philipp Kerling wrote:
> Hi,
> 
> 2017-03-21 (火) の 10:49 +0100 に Sebastian Sumpf さんは書きました:
>>> Do you have any specific feature
>>> requests besides simple read/write? 
>>
>> Read/write with native command queuing support would suffice.
> NCQ isn't directly applicable to NVMe, at least not in the SATA sense.
> NVMe has mandatory support for 65535 distinct submission queues into
> which you can each put 65536 commands that are executed in no
> particular order (i.e.  possibly in parallel and as the controller sees
> fit, similarly to NCQ).
> For Genode, using one queue would probably be sufficient.
> This does mean that the NVMe driver has to make sure that if you e.g.
> get a write and then a read of the same address queued from an
> application, the read would have to be postponed until the write is
> completed since the NVMe controller does not guarantee in-order
> execution. Now that I think about it though, this also applies to SATA
> NCQ and is what I guess Ata_driver::overlap_check() is for in the AHCI
> driver.

Good research from your side here.

> 
>> If the above is working, it would be interesting to investigate if
>> there
>> are features Genode could benefit from and maybe implement some.
>> Additionally power management is always a topic.
> Ok thanks, noted. Does Genode have support for ACPI device power state
> switching, particularly Runtime D3?

No, power management is still in its infancy. But this is a topic the
Genode staff will have to work on.

> NVMe also supports elaborate PM, some of which (e.g. automatic PM)
> could easily be integrated. The more involved stuff depends a lot on
> knowing the workload and requirements of the system (i.e. burstiness,
> priority of latency or throughput, ...), but that could be made into
> parameters provided to the driver.

Sounds good, looking forward to your proposal.

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [GSoC] UEFI framebuffer task

2017-03-21 Thread Sebastian Sumpf
Hi Philipp,

On 03/18/2017 07:36 PM, Philipp Kerling wrote:
> Hi,
> 
> Am Samstag, den 18.03.2017, 07:44 +0100 schrieb Sebastian Sumpf:
>> Genode has two approaches with regard to drivers: First, we write our
>> own (e.g., AHCI, SD, or ACPI) and second, we port them if we think
>> writing one exceeds our available resources. That being said, the USB
>> driver is ported from Linux and supports UHCI/EHCI/XHCI on x86 and
>> diverse ARM platforms (omap4, exynos5, rpi). USB device driver vise
>> there is hid/nic/storage support. We also have our own storage driver
>> (usb_block) that connects to the USB driver (i.e., the host
>> controller)
>> through our USB session interface. For isochronous USB this sessions
>> the
>> USB host controller drivers would have be to extended to support
>> isochronous transfers.
> OK, that confirms my understanding of the task.
> 
>> A USB device driver (e.g, audio or video) should
>> be written or ported. In the future we want to have all USB device
>> drivers outside of the current USB implementation.
> I'm not quite sure how to interpret the last sentence. Does this mean
> that you want to separate e.g. the HID driver that is currently inside
> the Linux kernel and have it attach to the Genode USB session
> interface?

Exactly.

>> As for additional driver stuff I can think of iMX6 USB and NIC
>> support.
>> AHCI is slowly replaced by NVMe so a NVMHCI implementation would be
>> very
>> welcome and if you are up for a really though one: We are currently
>> implementing our own Intel GPU multiplexer on Broadwell while also
>> having a running port with 3D support enabled. Additionally we are
>> looking into GPU virtualization. In this area there are a lot of
>> things
>> to do or investigate.
> The GPU stuff does seem interesting (and challenging), but it also
> sounds quite hard to quickly get into well enough for writing a solid
> project proposal if you don't have any prior exposure (like me).
> NVMHCI sounds like it could be what I was looking for though. I guess
> the expectation is to have a driver that implements the Block interface
> similar to the current AHCI driver? 

Yes.

Do you have any specific feature
> requests besides simple read/write? 

Read/write with native command queuing support would suffice.

NVMe supports a lot of enhanced
> stuff (like atomic compare/write and priorities) that cannot be exposed
> over the current Block interface - question is if there's a need for
> it.

If the above is working, it would be interesting to investigate if there
are features Genode could benefit from and maybe implement some.
Additionally power management is always a topic.


Regards,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [GSoC] UEFI framebuffer task

2017-03-18 Thread Sebastian Sumpf
Hey Philipp,

On 03/17/2017 11:02 PM, Philipp Kerling wrote:
> Hi Sebastian,
> 
> Thanks for looking through my findings.
> 
> Am Freitag, den 17.03.2017, 11:01 +0100 schrieb Sebastian Sumpf:
>> Loading Genode with GRUB2 is sufficient. The main goal is, as you
>> said,
>> to not rely on outdated BIOS features. There is already a work in
>> progress on the NOVA hypervisor
>> (https://github.com/genodelabs/genode/issues/2242), which now
>> supports
>> legacy boot (mutliboot) and UEFI boot (multiboot2).
> Yes, I had taken a look at that. I've investigated a bit, but apart
> from VBE and getting rid of the BDA for communicating the serial port
> address there doesn't seem to be that much left driver-wise to do at
> first glance since Genode didn't use many of the AT BIOS features in
> the first place. RTC driver using EFI runtime services could be added,
> though.
> 
>> Sounds very good. VBE is not necessary as Genode already offers a
>> VESA
>> driver.
> Yep, that was just to illustrate that it's not specifically an UEFI
> issue.
> 
>> I have to admit that this challenge is meant for students with little
>> systems programming knowledge an, so feel free to look into more
>> challenging topics here (http://genode.org/about/challenges). Also,
>> these are just suggestions and you are welcome to propose topics. We
>> also have topics not on the challenges list, if you let us know your
>> interests (like kernel hacking, device drivers, porting ...), we may
>> be
>> able to suggest something more fitting for you.
> I'd like to try my hand at device drivers, which was why I looked into
> the UEFI thing in the first place. Do you have any suggestions there
> that are not on the list? Isochronous USB is an option, but it looks
> like it is more about hooking up/passing through the Linux driver code
> correctly than the actual USB driver stuff.

Genode has two approaches with regard to drivers: First, we write our
own (e.g., AHCI, SD, or ACPI) and second, we port them if we think
writing one exceeds our available resources. That being said, the USB
driver is ported from Linux and supports UHCI/EHCI/XHCI on x86 and
diverse ARM platforms (omap4, exynos5, rpi). USB device driver vise
there is hid/nic/storage support. We also have our own storage driver
(usb_block) that connects to the USB driver (i.e., the host controller)
through our USB session interface. For isochronous USB this sessions the
USB host controller drivers would have be to extended to support
isochronous transfers. A USB device driver (e.g, audio or video) should
be written or ported. In the future we want to have all USB device
drivers outside of the current USB implementation.

As for additional driver stuff I can think of iMX6 USB and NIC support.
AHCI is slowly replaced by NVMe so a NVMHCI implementation would be very
welcome and if you are up for a really though one: We are currently
implementing our own Intel GPU multiplexer on Broadwell while also
having a running port with 3D support enabled. Additionally we are
looking into GPU virtualization. In this area there are a lot of things
to do or investigate.

@staff: Do you have any additional suggestions?

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [GSoC] UEFI framebuffer task

2017-03-17 Thread Sebastian Sumpf
Hi Philipp,

On 03/16/2017 09:03 PM, Philipp Kerling wrote:
> Hi,
> 
> I'm interested in participating in the Genode project as GSoC student,
> specifically the UEFI framebuffer task, so I am writing to you to
> briefly introduce myself and discuss the project idea. I am currently a
> student of Computer Engineering (MSc) at Ilmenau University of
> Technology in Germany in my second master semester. I've chosen
> computer engineering over computer science out of interest for low-
> level topics, which I think fits nicely with Genode. I worked on a toy
> x86 operating system with a friend some years ago, which was a good
> learning experience. It naturally did not go very far, but it did at
> least have basic multitasking and virtual memory :-)

Thanks for your introduction!

> So, about the UEFI framebuffer proposal: Is the overall goal to have
> Genode/Nova running as bare UEFI application (without any OS Loader) or
> to have it loaded by GRUB (or similar) but not rely on outdated BIOS
> features (such as VBE) any more? Or support both like e.g. the Linux
> kernel does?

Loading Genode with GRUB2 is sufficient. The main goal is, as you said,
to not rely on outdated BIOS features. There is already a work in
progress on the NOVA hypervisor
(https://github.com/genodelabs/genode/issues/2242), which now supports
legacy boot (mutliboot) and UEFI boot (multiboot2).

> This heavily influences the options available for framebuffer output,
> since the UEFI GOP (Graphics Output Protocol) that I assume you are
> referring to as one of the alternative/modern ways to access the
> framebuffer is only available as UEFI boot service. When being booted
> from an OS loader, usually only UEFI run-time services are available.
> In that case, the OS loader has to convey some information (mainly
> memory address, width/stride, height, depth) about the linear GOP
> framebuffer that the loader (or the firmware, for that matter)
> initialized to the kernel. multiboot2 does this for example with the
> framebuffer boot info tag. So to use this it would be sufficient to
> write a generic framebuffer driver operating on that information that
> is not specific to UEFI at all. It could probably also use the VBE
> framebuffer provided the OS loader initialized it. The "problem" with
> this is that it is probably not enough work to justify a 3-month GSoC
> proposal.

Sounds very good. VBE is not necessary as Genode already offers a VESA
driver. Additionally, multiboot2 support should be added to the SeL4,
base-hw, and Fiasco.OC kernels. Some experiments with Genode and
coreboot are also welcome.
I have to admit that this challenge is meant for students with little
systems programming knowledge an, so feel free to look into more
challenging topics here (http://genode.org/about/challenges). Also,
these are just suggestions and you are welcome to propose topics. We
also have topics not on the challenges list, if you let us know your
interests (like kernel hacking, device drivers, porting ...), we may be
able to suggest something more fitting for you.

Cheers,

Sebastian

> I hope that the questions at least touch the right topics but do feel
> free to say so if you had something different in mind altogether.
> 
> Best regards,
> Philipp
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Some questions

2017-02-06 Thread Sebastian Sumpf
On 02/06/2017 10:00 PM, Hack wrote:
> On 02/06/2017 08:02 PM, Sebastian Sumpf wrote:
>> Hi,
>>
>> On 02/06/2017 03:42 PM, Hack wrote:
>>> Hi,
>>>
>>> I am currently using Qubes OS, but with the next release, I will have to
>>> upgrade my hardware. And it will cost me a lot.
>>>
>>> Anyway, I started to look at Genode OS, but I can't find an hardware
>>> support list.
>>>
>>> Questions:
>>>
>>> 1. How to know if my current configuration will be supported?
>>
>> http://usr.sysret.de/jws/genode/hcl.html
>>
>>> 2. Is there any 3d support with Genode OS?
>>
>> Intel Broadwell with Mesa is in the works. Skylake might follow.
>>
> 
> And what about Sandy Bridge/Ivy Bridge with Mesa?

It did not not receive any focus, yet. But it should not be hard to
enable it, since it was ported from Linux. The corresponding branch can
be found here: https://github.com/ssumpf/genode/tree/mesa-11


> 
>>> 3. Is it possible to use Genode OS as desktop OS?
>>
>> We are getting there, but you might have to stick to VirtualBox and a
>> desktop OS of your choice until then.
>>
>>> Thanks
>>
>> You are welcome.
>>
>>>
>>> --
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>>> ___
>>> genode-main mailing list
>>> genode-main@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>
>>
>>
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>>
> 
> 
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Some questions

2017-02-06 Thread Sebastian Sumpf
Hi,

On 02/06/2017 03:42 PM, Hack wrote:
> Hi,
> 
> I am currently using Qubes OS, but with the next release, I will have to 
> upgrade my hardware. And it will cost me a lot.
> 
> Anyway, I started to look at Genode OS, but I can't find an hardware 
> support list.
> 
> Questions:
> 
> 1. How to know if my current configuration will be supported?

http://usr.sysret.de/jws/genode/hcl.html

> 2. Is there any 3d support with Genode OS?

Intel Broadwell with Mesa is in the works. Skylake might follow.

> 3. Is it possible to use Genode OS as desktop OS?

We are getting there, but you might have to stick to VirtualBox and a
desktop OS of your choice until then.

> Thanks

You are welcome.

> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Roadmap 2017

2016-12-23 Thread Sebastian Sumpf
Hi everyone,

for 2017 my goal is to get Intel graphics hardware support into Genode.
By now I have the intel_fb driver running on Broadwell, featuring OpenGL
and libDRM, all in one component. The future task is to separate the
driver from libDRM and define some sort of GPU session so multiple
clients can make use of the GPU.

Sebastian

On 12/21/2016 01:04 PM, Norman Feske wrote:
> Hello everyone,
> 
> the end of the year is approaching. So it is the right time to make up
> our minds for the upcoming year.
> 
> 
> Review of the past year
> ---
> 
> When reviewing the roadmap for 2016, it is quite clear that our initial
> goals moved a bit out of focus throughout the year. Our overall theme
> was to make Genode more easily available outside the inner circle of
> developers. Topics like system configuration, package management, and
> tutorials spring to mind. However, the four releases of 2016 were mostly
> concerned with base technologies rather than end-user facing features.
> Just to name a few topic:
> 
> * RISC-V architecture
> * Hosting Genode on top of the Muen separation kernel
> * Using Genode with the seL4 kernel
> * Fundamental revision of the framework API
> * Huge device-driver improvements (like wifi, graphics, USB, ACPI)
> * Features like VirtualBox 5, virtual networking, TOR, Rust, ...
> 
> There were two reasons behind this shift.
> 
> First, exploring new ways to combine Genode with other technologies
> (like RISC-V, seL4, Muen) is very exciting from a developer's
> perspective and creates new opportunities for collaboration. On that
> account, I am particularly happy about the relationships that we now
> enjoy with the Muen and seL4 developers.
> 
> Second, we realized that the concerns of the existing Genode users
> should be prioritized over extending the user base. The existing users
> are primarily interested in API stability and maturity. So personally, I
> made it my priority to free Genode from legacies and known architectural
> limitations. Over the year, we introduced and cultivated the new
> framework API that is designed for safety, achieved cross-kernel binary
> compatibility, and revised the framework's most fundamental protocols.
> This was quite a feat! Now, knowing that the time of sweeping
> architectural changes lies behind us, I feel much more confident that
> users of Genode will enjoy it.
> 
> Even though we largely deviated from our original plan, I am very
> satisfied with the outcome of the past year. After all, the roadmap is a
> plan. Plans can be changed.
> 
> 
> My goals for 2017
> -
> 
> There are still two low-level construction sites left that I want to
> wrap up, which is the introduction of application binary interfaces
> (ABI) and ability to dynamically configure the init component. The ABIs
> largely decouple library implementations from their users and thereby
> will greatly ease the creation of a scalable package-management system
> on top of Genode. The dynamic init will potentially cover the use cases
> of most of today's custom-implemented Genode runtime environments (like
> launchpad, cli_monitor) by one versatile solution that scales well.
> This, in turn, will facilitate the creation of more sophisticated and
> dynamic Genode systems. In contrast to the "Turmvilla" scenario that I
> am currently using, such systems could be defined and reshaped not only
> at their build time but during runtime.
> 
> With the ABI and dynamic init in place, I'd like to concentrate on
> stressing the framework, both in terms of using it much more intensively
> and by creating artificial stress. By the time of the release of version
> 17.05, Genode should - in principle - be well suited for the the
> maintenance of a long-term supported version.
> 
> When looking at my use of the Turmvilla scenario on my laptop, I see two
> principle limitations. First, the system is hard to set up. Installing
> it on a new machine is quite a burden. (i.e., I have shiny new x260 on
> my desk that gathers dust because I don't find the time to install
> Genode on it) This needs to be fixed! Second, the system does not stay
> up to date automatically. I would love to always use the components of
> the latest master branch so that I can detect and correct regressions
> that slip through our automated tests. Consequently, I need to craft a
> solution that allows me to update Genode on the fly and - if anything
> goes wrong = allows me to roll back to the previous version.
> 
> There are many other ideas on the back of my head. But the topics
> outlined above are the most important ones for me.
> 
> Now I am interested in your plans and goals for 2017! ;-)
> 
> As every year, I will to consolidate the discussion into the official
> roadmap by mid of January.
> 
> Cheers
> Norman
> 


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi 

Re: Page faults in managed dataspaces

2016-09-26 Thread Sebastian Sumpf
Hey Denis,

On 09/24/2016 06:20 PM, Denis Huber wrote:
> Dear Genode Community,
> 
> perhaps the wall of text is a bit discouraging to tackle the problem. 
> Let me summaries the important facts of the scenario:
> 
> * Two components 'ckpt' and 'target'
> * ckpt shares a thread capability of target's main thread
> * ckpt shares a managed dataspace with target
>* this managed dataspace is initially empty
> 
> target's behaviour:
> * target periodically reads and writes from/to the managed dataspace
> * target causes page faults (pf) which are handled by ckpt's pf handler 
> thread
>* pf handler attaches a pre-allocated dataspace to the managed 
> dataspace and resolves the pf
> 
> ckpt's behaviour:
> * ckpt periodically detaches all attached dataspaces from the managed 
> dataspace
> 
> Outcome:
> After two successful cycles (pf->attach->detach -> pf->attach->detach) 
> the target does not cause a pf, but reads and writes to the managed 
> dataspace although it is (theoretically) empty.
> 
> I used Genode 16.05 with a foc_pbxa9 build. Can somebody help me with my 
> problem? I actually have no idea what could be the problem.
> 
> 

You are programming against fairly untested grounds here. There still
might be bugs or corner cases in this line of code. So, someone might
have to look into things (while we are very busy right now). Your
problem is reproducible with [4] right?

By the way, your way of reporting is exceptional, the more information
and actual test code we have, the better we can debug problems. So,
please keep it this way, even though we might not read all of it at times ;)

Regards and if I find the time, I will look into your issue,

Sebastian

> 
> 
> On 19.09.2016 15:01, Denis Huber wrote:
>> Dear Genode Community,
>>
>> I want to implement a mechanism to monitor the access of a component to
>> its address space.
>>
>> My idea is to implement a monitoring component which provides managed
>> dataspaces to a target component. Each managed dataspace has several
>> designated dataspaces (allocated, but not attached, and with a fixed
>> location in the managed dataspace). I want to use several dataspaces to
>> control the access range of the target component.
>>
>> Whenever the target component accesses an address in the managed
>> dataspace, a page fault is triggered, because the managed dataspace has
>> no dataspaces attached to it. The page fault is caught by a custom page
>> fault handler. The page fault handler attaches the designated dataspace
>> into the faulting managed dataspace and resolves the page fault.
>>
>> To test my concept I implemented a prototypical system with a monitoring
>> component (called "ckpt") [1] and a target component [2].
>>
>> [1]
>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/b502ffd962a87a5f9f790808b13554d6568f6d0b/src/test/concept_session_rm/server/main.cc
>> [2]
>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/b502ffd962a87a5f9f790808b13554d6568f6d0b/src/test/concept_session_rm/client/main.cc
>>
>> The monitoring component provides a service [3] to receive a Thread
>> capability to pause the target component before detaching the dataspace
>> and resume after detaching and to provide a managed dataspace to the client.
>>
>> [3]
>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/tree/b502ffd962a87a5f9f790808b13554d6568f6d0b/include/resource_session
>>
>> The monitoring component runs a main loop which pauses the client's main
>> thread and detaches all attached dataspaces from the managed dataspace.
>> The target component also runs a main loop which prints (reads) a number
>> from the managed dataspace to the console and increments (writes) it in
>> the managed dataspaces.
>>
>> The run script is found here [4].
>>
>> [4]
>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/b502ffd962a87a5f9f790808b13554d6568f6d0b/run/concept_session_rm.run
>>
>> The scenario works for the first 3 iterations of the monitoring
>> component: Every 4 seconds it detaches the dataspaces from the managed
>> dataspace and afterwards resolves the page faults by attaching the
>> dataspaces back. After the 3. iteration, the target component accesses
>> the theoretically empty managed dataspaces, but does not trigger a page
>> fault. In fact, it reads and writes to the designated dataspaces as if
>> it was attached.
>>
>> By running the run script I get the following output:
>> [init -> target] Initialization started
>> [init -> target] Requesting session to Resource service
>> [init -> ckpt] Initialization started
>> [init -> ckpt] Creating page fault handler thread
>> [init -> ckpt] Announcing Resource service
>> [init -> target] Sending main thread cap
>> [init -> target] Requesting dataspace cap
>> [init -> target] Attaching dataspace cap
>> [init -> target] Initialization ended
>> [init -> target] Starting main loop
>> 

Re: Genode 16.05 Fault handler

2016-09-05 Thread Sebastian Sumpf
He Denis,

On 09/03/2016 12:03 PM, Denis Huber wrote:
> Hello Sebastian,
> 
> I think, I have expressed myself incorrectly. I don't want to handle the 
> page faults with the same thread which also causes them. I want to find 
> out the usage of the new Signal_handler API: I want to create a simple 
> component which causes a page fault and which also registers a page 
> fault handler for its address space, which wil resolve the page faults 
> in a separate Entrypoint (= separate Thread).
> 
> Practically, I have created a test scenario [1] with the old 
> Signal_receiver and Signal_context syntax, where a component registers a 
> page fault handler for its address space and then causes a page fault.
> 
> [1] 
> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/7c1c6183a5132aa67d2604221d4eb6ee39106c64/src/test/fault_handler_old/main.cc
> 
> Now, I want to change this scenario to use the new Signal_handler 
> syntax, where a component registers a Signal_handler and then causes a 
> page fault, which is handled by the Signal_handler.
> 
> My understanding of a Signal_handler is, that the Entrypoint, which is 
> passed at the creation of a Signal_handler, catches a page fault signal 
> from core and calls the function passed to the Signal_handler. Because 
> an Entrypoint is basically a thread, it will do the same as 
> Local_fault_handler class in [1] (Is it correct?).
> 
> Based on that thoughts I created this component [2].
> 
> [2] 
> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/81f6a705b5b57bc992c47566747a8273fb056c33/src/test/fault_handler/main.cc
> 
> I handle the "hen and egg" problem with a separate Entrypoint which is 
> actually another thread (other then the thread which causes the page 
> fault). But my solution does not work. Where do I have a 
> misunderstanding of the Signal_handler/Entrypoint concept?
> 
> Basically, I want to know how to handle page faults using a 
> Signal_handler object. In my project I will use a parent component, 
> which will create several Region_maps and provide one Signal_handler for 
> all those Region_maps. One Region_map is given to the child as a 
> dataspace, when it allocates ram from its ram_session. The Region_map is 
> initially empty. When the child accesses an address in that Region_map, 
> the caused page fault will be caught by the Signal_handler and a 
> dataspace, backed with physical memory, attached.

You seem to be doing it all right. I have updated the recent fault
handler example to use a second entrypoint
(https://github.com/ssumpf/genode/commit/ff23c7227944324b55fc281f26b8e5bfc12e14fa).
Doing this, I experienced the same problems as yourself. Namely, that
the page-fault signal is not delivered. This is caused by the fact of
the signal proxy thread of the entrypoint (that delivers the signal) not
being started. I fixed this and it works for now. It might just be a
bug, but I will discuss this issue tomorrow.

Regards,

Sebastian

> Thank you for your help in advance ^^
> 
> 
> Kind regards,
> Denis
> 
> On 31.08.2016 18:23, Sebastian Sumpf wrote:
>> Hi Denis,
>>
>> On 08/31/2016 02:24 PM, Denis Huber wrote:
>>> Hello Sebastian,
>>>
>>> thank you for the working solution :)
>>>
>>> Now the page faults of threads other than the main-thread can be
>>> handled. What about the main-thread? How can I change the example to be
>>> able to handle page faults from the main-thread?
>>>
>>> Do I have to create an extra thread which is dedicated to handle page
>>> faults of the other threads like the old Signal_receiver/Signal_context
>>> approach [1]? I thought the new design of the Entrypoint provides this
>>> feature (Entrypoint handles page faults in its thread). Or is my
>>> understanding wrong?
>>
>> as I said yesterday, a thread (what an EP essentially is) cannot handle
>> its own page fault. It is a hen and egg problem. Microkernels just save
>> the thread state and call a pager thread in order to resolve the page
>> fault. Note, that this thread does not have to be within the same
>> program (or protection domain). What I don't understand, why would you
>> want a self paging program? The memory has to be provided and paged from
>> the outside anyway (in Genode that would be the parent or core)?
>>
>> Cheers,
>>
>> Sebastian
>>
>>>
>>> [1]
>>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/7c1c6183a5132aa67d2604221d4eb6ee39106c64/src/test/fault_handler_old/main.cc
>>>
>>>
>>> Kind regards,
>>> Denis
>>>
&

Re: Segfault when calling (Cancelable)Lock.unlock?

2016-08-31 Thread Sebastian Sumpf
0-01156000 rwxs  fc:01 6565423
> /tmp/genode-1000/ds-102 (deleted)
> 01156000-0118a000 r-xs 1000 fc:01 6564859
> /build/linux_x86/var/libcache/lwip/lwip.lib.so
> 0118a000-01194000 rwxs  fc:01 6565427
> /tmp/genode-1000/ds-106 (deleted)
> 01194000-0b00 ---p  00:00 0
> 4000-400e ---p  00:00 0
> 400e-4010 rwxs  fc:01 6565400
> /tmp/genode-1000/ds-82 (deleted)
> 4010-401e ---p  00:00 0
> 401e-4020 rwxs  fc:01 6565403
> /tmp/genode-1000/ds-84 (deleted)
> 4020-402f8000 ---p  00:00 0
> 402f8000-4030 rwxs  fc:01 6565409
> /tmp/genode-1000/ds-88 (deleted)
> 4030-403f ---p  00:00 0
> 403f-4040 rwxs  fc:01 6565432
> /tmp/genode-1000/ds-111 (deleted)
> 4040-404fc000 ---p  00:00 0
> 404fc000-4050 rwxs  fc:01 6565435
> /tmp/genode-1000/ds-114 (deleted)
> 4050-405ff000 ---p  00:00 0
> 405ff000-4060 rwxs  fc:01 6565436
> /tmp/genode-1000/ds-115 (deleted)
> 4060-406fe000 ---p  00:00 0
> 406fe000-4070 rwxs  fc:01 6565457
> /tmp/genode-1000/ds-123 (deleted)
> 4070-5000 ---p  00:00 0
> 5000-5010 rwxp  00:00 0
> 5010-5017b000 r-xp 1000 fc:01 6556675
> /build/linux_x86/var/libcache/ld/ld.lib.so
> 5017b000-5018f000 rwxp 0007c000 fc:01 6556675
> /build/linux_x86/var/libcache/ld/ld.lib.so
> 5018f000-50249000 rwxp  00:00 0
> 2b7c3051d000-2b7c30525000 rwxs  fc:01 6565392
> /tmp/genode-1000/ds-75 (deleted)
> 2b7c30525000-2b7c30527000 rwxs  fc:01 6565379
> /tmp/genode-1000/ds-63 (deleted)
> 2b7c30527000-2b7c30529000 rwxs  fc:01 6565379
> /tmp/genode-1000/ds-63 (deleted)
> 2b7c30529000-2b7c3052b000 rwxs  fc:01 6565379
> /tmp/genode-1000/ds-63 (deleted)
> 2b7c3052b000-2b7c30533000 rwxs  fc:01 6565413
> /tmp/genode-1000/ds-92 (deleted)
> 2b7c30533000-2b7c30534000 rwxs  fc:01 6565383
> /tmp/genode-1000/ds-66 (deleted)
> 2b7c30534000-2b7c30544000 rwxs  fc:01 6565431
> /tmp/genode-1000/ds-110 (deleted)
> 2b7c30544000-2b7c30546000 rwxs  fc:01 6565379
> /tmp/genode-1000/ds-63 (deleted)
> 2b7c30546000-2b7c30548000 rwxs  fc:01 6565379
> /tmp/genode-1000/ds-63 (deleted)
> 2b7c30548000-2b7c30568000 rwxs  fc:01 6565452
> /tmp/genode-1000/ds-119 (deleted)
> 2b7c30568000-2b7c306f8000 rwxs  fc:01 6565453
> /tmp/genode-1000/ds-120 (deleted)
> 2b7c306f8000-2b7c30888000 rwxs  fc:01 6565454
> /tmp/genode-1000/ds-121 (deleted)
> 2b7c30888000-2b7c3088a000 rwxs  fc:01 6565379
> /tmp/genode-1000/ds-63 (deleted)
> 2b7c3088a000-2b7c30a1a000 rwxs  fc:01 6565460
> /tmp/genode-1000/ds-125 (deleted)
> 2b7c30a1a000-2b7c30baa000 rwxs  fc:01 6565464
> /tmp/genode-1000/ds-126 (deleted)
> 2b7c30baa000-2b7c30d3a000 rwxs  fc:01 6565460
> /tmp/genode-1000/ds-125 (deleted)
> 2b7c30d3a000-2b7c30eca000 rwxs  fc:01 6565464
> /tmp/genode-1000/ds-126 (deleted)
> 7fffd8f3d000-7fffd8f5e000 rwxp  00:00 0
> 7fffd8f76000-7fffd8f78000 r-xp  00:00 0
> [vdso]
> ff60-ff601000 r-xp  00:00 0
> [vsyscall]
> 
> 
> 
> 
> On 30-08-16 16:05, Sebastian Sumpf wrote:
>> Hi Menno,
>>
>> On 08/30/2016 03:43 PM, Menno Valkema wrote:
>>> Hi Everyone,
>>>
>>> I'm currently using a Nic_connection to exchange data data between
>>> components on linux_x86.
>>>
>>> Before sending data from the Nic server I first check whether any data
>>> can be freed. Even before the first packet is send out, using the code
>>> below:
>>>
>>> while ( _rx.source()->ack_avail() )
>>> {
>>>   _rx.source()->release_packet( _rx.source()->get_acked_packet() );
>>> }
>>>
>>>
>>> Whenever I'm sending data out from an extern "C" method (callback passed
>>> to a c library), the application crashes. Looking with GDB, the
>>> issues seems to be with the destructor of the lock guard from the code
>>> from packet_stream.h (full GDB output at the bottom of this email).
>>>
>>> bool ready_for_rx()
>>> {
>>> Genode::Lock::Guard lock_guard(_rx_queue_lock);
>>> return !_rx_queue->empty();
>>> }
>>>
>>> The destructor of the Guard simply calls the unlock method for the lock.
>>> However this crashes. Could it be that the unlock method throws an
>>> exception in the destructor, or that there might be uninitialized
>>> variables within the lock itself?
>

Re: Segfault when calling (Cancelable)Lock.unlock?

2016-08-30 Thread Sebastian Sumpf
Hi Menno,

On 08/30/2016 03:43 PM, Menno Valkema wrote:
> Hi Everyone,
> 
> I'm currently using a Nic_connection to exchange data data between
> components on linux_x86.
> 
> Before sending data from the Nic server I first check whether any data
> can be freed. Even before the first packet is send out, using the code
> below:
> 
> while ( _rx.source()->ack_avail() )
> {
>   _rx.source()->release_packet( _rx.source()->get_acked_packet() );
> }
> 
> 
> Whenever I'm sending data out from an extern "C" method (callback passed
> to a c library), the application crashes. Looking with GDB, the
> issues seems to be with the destructor of the lock guard from the code
> from packet_stream.h (full GDB output at the bottom of this email).
> 
> bool ready_for_rx()
> {
>   Genode::Lock::Guard lock_guard(_rx_queue_lock);
>   return !_rx_queue->empty();
> }
> 
> The destructor of the Guard simply calls the unlock method for the lock.
> However this crashes. Could it be that the unlock method throws an
> exception in the destructor, or that there might be uninitialized
> variables within the lock itself?
> 
> I'm sort of lost here, because I've used the Nic_connection in similar
> settings in the past (also called from an extern "C" context as a c code
> callback). However this time it consistently breaks, whenever I try to
> sent out the first packet from an extern "c" context (it does work when
> sending the packet out from normal c++ code.
> 
> Any suggestions what might causes the crash in my application?
> 
> Cheers, Menno
> 
> 
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x01143c22 in ~Lock_guard (this=,
> __in_chrg=)
> at /repos/base/include/base/lock_guard.h:42
> 42~Lock_guard() { _lock.unlock(); }
> (gdb) bt
> #0  0x01143c22 in ~Lock_guard (this=,
> __in_chrg=)
> at /repos/base/include/base/lock_guard.h:42
> #1  ready_for_rx (this=) at
> /repos/os/include/os/packet_stream.h:400
> #2  ack_avail (this=) at
> /repos/os/include/os/packet_stream.h:686
> 

You could check the address of _lock in the constructor of Lock_guard
and also in the destructor. It might be stack corruption. In case the
address remains the same, is it the same as the segmentation fault address?

Cheers,

Sebastian


--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Genode 16.05 Fault handler

2016-08-30 Thread Sebastian Sumpf
Hello again,

I missed that part

> *((unsigned int*)0x1000) = 1;

in my last reply. You cannot cause a page fault in your entry point and
also handle it in the entry point thread, because the entry point is not
able to receive signals when it is in page fault. It is a hen and egg
problem.

If you cause the fault from another Genode thread, it should work as
expected.

Sebastian


On 08/30/2016 03:07 PM, Denis Huber wrote:
> Hello Sebastian,
> 
> I moved sigh to the member attributes [1], but without success. I also 
> tried to use a heap to store the Signal_handler, also without success.
> 
> [1] 
> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/93eaec436ce9b6d3b3a6663558bff9af925ae70f/src/test/fault_handler/main.cc#L19
> 
> I am using run script [2], if it helps.
> 
> [2] 
> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/93eaec436ce9b6d3b3a6663558bff9af925ae70f/run/fault_handler.run
> 
> 
> Kind regards,
> Denis
> 
> On 30.08.2016 14:36, Sebastian Sumpf wrote:
>> Hi Denis,
>>
>>> Signal_handler sigh = {env.ep(), *this, ::_handle_fault};
>>
>> The line above, creates the Signal_handler on the stack and destructs
>> this handler as soon as the 'Main' constructor is finished.
>>
>> Therefore, 'sigh' should be a member of the 'Main' class.
>>
>> Regards,
>>
>> Sebastian
>>
>> On 08/30/2016 02:10 PM, Denis Huber wrote:
>>> Dear Genode community,
>>>
>>> in Genode 16.05 the old usage of Signal_receivers and Signal_contexts is
>>> considered deprecated. Instead Signal_handler and Signal_transmitter
>>> shall be used.
>>>
>>> I am trying to use a Signal_handler as a fault handler for env's address
>>> space. I wrote a short test to illustrate the problem [1].
>>>
>>> [1]
>>> https://github.com/702nADOS/genode-CheckpointRestore-SharedMemory/blob/c9a5a1f999a2ce1c6ffd5c316eee127c93d87308/src/test/fault_handler/main.cc
>>>
>>> The output of [1] is as follows:
>>> "
>>> [init -> pf-signal_handler] --- pf-signal_handler started ---
>>> no RM attachment (WRITE pf_addr=1000 pf_ip=100061c from 2ae000)
>>> Genode::Pager_entrypoint::entry()::<lambda(Genode::Pager_object*)>:
>>> Could not resolve pf=1000 ip=100061c
>>> "
>>>
>>> The signal handler was registered correctly, because the line
>>> "
>>> Genode::Core_pd_session_component::submit(Genode::Capability,
>>> unsigned int)::<lambda(Genode::Signal_context_component*)>: invalid
>>> signal-context capability
>>> "
>>> is missing. However, the method _handle_fault() is never entered. What
>>> am I doing wrong?
>>>
>>>
>>> Kind regards,
>>> Denis
>>>
>>> --
>>> ___
>>> genode-main mailing list
>>> genode-main@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>
>>
>>
>> --
>> ___
>> genode-main mailing list
>> genode-main@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>
> 
> --
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: porting python in tz_vmm demo

2016-08-03 Thread Sebastian Sumpf
Hey Abhay,

On 08/03/2016 11:10 AM, Abhay Amala wrote:
> Hi Alexander and Stefan,
> 
> Thank you for your responses.
> 
> I have another issue now. I couldn't import python built-in modules such
> as math, time, itertools, etc. I got "*No module named* " ImportError.
> However, I need this modules to run my python project. Does anyone have
> any idea to fix this issue? I will be grateful for any help you can provide.
> 

I ported the Python interpreter to Genode back in 2010 and omitted any
module support at the time. My line of thinking was, if someone wants to
use Python on Genode, this lack will get noticed. Congratulations you
are the first one! So, basically it should not be that hard to enable
module support. One has to look at the "import" side of Python, which
should somehow provide the "to be interpreted" code to the interpreter,
while also handling the C-code side of some modules. Since our resources
are very limited, I invite you to fill in this gap and will gladly
answer questions if you chose to proceed in this direction.

Cheers,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Sending data to offline system doesn't work reliably

2016-07-29 Thread Sebastian Sumpf
Hey Johanna,

On 07/28/2016 06:20 PM, Johanna Steer wrote:
> Hi Sebastian,
> 
> i am using QEMU.

Ok, then the thing has a bug. I might have a look into it, if I can find
the time. Otherwise, you could try a different Qemu version. We use
2.3.0 over here and have used 1.5.0 before that, maybe there is a
regression somewhere from 1.5.0 to 2.3.0 to your version.

Cheers,

Sebastian

> 
> 
>>Hi Johanna,
>>
>>On 07/26/2016 10:58 AM, Johanna Steer wrote:
>>> Hi,
>>> 
>>> i am working on a toolchain monitoring the schedluing behavior of the 
>>> fiasco.oc kernel. The data is monitored through the trace service (quota 
>>> for trace is 2M).
>>> It is then sent to an offline system through an active TCP/IP connection 
>>> and written into a database. VDE is used for that and i am working on 
>>> Ubuntu 14.04.
>>> My problem is that the data isn't sent reliably. I am executing a 
>>> periodic task that returns zero and exits. The only thing that varies is 
>>> the period. After 20 seconds the tasks stop, the monitored data is 
>>> gathered and then sent to the offline system.
>>> The kernel says that it is sending the data, but the system freezes at 
>>> times and the data simply doesn't arrive.
>>> The system reacts quite randomly: Sometimes it sends the files, 
>>> sometimes it doesn't. Sometimes i get an error (shown below). It seems 
>>> easier to send small data sizes (around 200KB), above 700KB hardly 
>>> anything works. In between, it might work or not. As far as i have 
>>> experienced there is no pattern behind it.
>>> 
>>> I tried the tests before with only 1M quota for trace and the 
>>> reliability improved with 2M quota. However, with 4M it gets worse again 
>>> and the error occures more often.
>>> 
>>> 
>>> Here ist the error:
>>> 
>>> [init -> nic_drv] tx fifo overrun, ignore packet
>>
>>This error comes from the lan9118 NIC driver. It is a network card
>>driver we use for the PBXA9 ARM platform in Qemu only. We have never
>>used it on real hardware, and therefore, it might not work correctly
>>there. What SoC are you using or do you use Qemu?
>>
>>Regards,
>>
>>Sebastian
>>
>>> : spawn id exp6 not open
>>>  while executing
>>> "expect {
>>>  -i $running_spawn_id $platform_msg { puts stderr "Error: 
>>> platform rebooted unexpectedly"; exit -4 }
>>>  -i $running_spawn_id -re $wait_for_re..."
>>>  (procedure "wait_for_output" line 22)
>>>  invoked from within
>>> "wait_for_output $wait_for_re $timeout_value $qemu_spawn_id"
>>>  (procedure "run_log" line 28)
>>>  invoked from within
>>> "run_log $wait_for_re $timeout_value"
>>>  (procedure "run_genode_until" line 28)
>>>  invoked from within
>>> "run_genode_until forever"
>>>  (file "/home/johanna/Bachelorarbeit/genode/repos/dom0/run/dom0.run" 
>>> line 132)
>>>  invoked from within
>>> "source $include_name"
>>>  ("foreach" body line 6)
>>>  invoked from within
>>> "foreach include_name [get_cmd_arg --include ""] {
>>>  # first check if the include name is absolute
>>>  if {[string first "/" $include_name] == 0} {
>>>  puts ..."
>>>  (file "/home/johanna/Bachelorarbeit/genode/tool/run/run" line 642)
>>> 
>>> --
>>> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
>>> patterns at an interface-level. Reveals which users, apps, and protocols 
>>> are 
>>> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
>>> J-Flow, sFlow and other flows. Make informed decisions using capacity 
>>> planning
>>> reports.http://sdm.link/zohodev2dev
>>> ___
>>> genode-main mailing list
>>> genode-main@...
>>> https://lists.sourcef
> 
> 
> 
> 
> --
> 
> 
> 
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Sending data to offline system doesn't work reliably

2016-07-27 Thread Sebastian Sumpf
Hi Johanna,

On 07/26/2016 10:58 AM, Johanna Steer wrote:
> Hi,
> 
> i am working on a toolchain monitoring the schedluing behavior of the 
> fiasco.oc kernel. The data is monitored through the trace service (quota 
> for trace is 2M).
> It is then sent to an offline system through an active TCP/IP connection 
> and written into a database. VDE is used for that and i am working on 
> Ubuntu 14.04.
> My problem is that the data isn't sent reliably. I am executing a 
> periodic task that returns zero and exits. The only thing that varies is 
> the period. After 20 seconds the tasks stop, the monitored data is 
> gathered and then sent to the offline system.
> The kernel says that it is sending the data, but the system freezes at 
> times and the data simply doesn't arrive.
> The system reacts quite randomly: Sometimes it sends the files, 
> sometimes it doesn't. Sometimes i get an error (shown below). It seems 
> easier to send small data sizes (around 200KB), above 700KB hardly 
> anything works. In between, it might work or not. As far as i have 
> experienced there is no pattern behind it.
> 
> I tried the tests before with only 1M quota for trace and the 
> reliability improved with 2M quota. However, with 4M it gets worse again 
> and the error occures more often.
> 
> 
> Here ist the error:
> 
> [init -> nic_drv] tx fifo overrun, ignore packet

This error comes from the lan9118 NIC driver. It is a network card
driver we use for the PBXA9 ARM platform in Qemu only. We have never
used it on real hardware, and therefore, it might not work correctly
there. What SoC are you using or do you use Qemu?

Regards,

Sebastian

> : spawn id exp6 not open
>  while executing
> "expect {
>  -i $running_spawn_id $platform_msg { puts stderr "Error: 
> platform rebooted unexpectedly"; exit -4 }
>  -i $running_spawn_id -re $wait_for_re..."
>  (procedure "wait_for_output" line 22)
>  invoked from within
> "wait_for_output $wait_for_re $timeout_value $qemu_spawn_id"
>  (procedure "run_log" line 28)
>  invoked from within
> "run_log $wait_for_re $timeout_value"
>  (procedure "run_genode_until" line 28)
>  invoked from within
> "run_genode_until forever"
>  (file "/home/johanna/Bachelorarbeit/genode/repos/dom0/run/dom0.run" 
> line 132)
>  invoked from within
> "source $include_name"
>  ("foreach" body line 6)
>  invoked from within
> "foreach include_name [get_cmd_arg --include ""] {
>  # first check if the include name is absolute
>  if {[string first "/" $include_name] == 0} {
>  puts ..."
>  (file "/home/johanna/Bachelorarbeit/genode/tool/run/run" line 642)
> 
> --
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity planning
> reports.http://sdm.link/zohodev2dev
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: e1000 nic driver problem

2016-07-01 Thread Sebastian Sumpf

Hi again,

On 07/01/2016 08:25 AM, john stokes wrote:
> on running it real x86 hardware first two penguins are shown then some
> lines like
> [ 0.1234] ...
> [  0.2567]
> .
> 
> .,..
> [ 2.98745] genode blk-driver is loaded
> then booting hangs up there without showing any error message
> but after removing nic_drv support it shows two more lines below
> blk-driver loaded
> mount everything
> setup networking
> and then autologin terminal of l4linux appears

This, most likely, implies that dde_ipxe did not come up for the rtl8169
card. The thing is, we cannot test this card over here, since we don't
own one. Is there a way you could provide the serial (UART) log output?
Console only is unfortunately not sufficient here. So, for now I would
leave 'nic_drv' commented.

Sebastian

> On Fri, Jul 1, 2016 at 11:22 AM, Sebastian Sumpf
> <sebastian.su...@genode-labs.com
> <mailto:sebastian.su...@genode-labs.com>> wrote:
> 
> Hi John,
> 
> On 07/01/2016 05:58 AM, john stokes wrote:
> > it's fine but can you tell me how can i boot l4linux without e1000 or
> > rtl8139 support?
> 
> It is sufficient to not start any nic_drv (dde_ipxe) in your Genode
> configuration (as you stated). L4Linux does not have access to any
> *real* hardware on Genode, it is a virtual machine. Network access is
> provided by a Linux driver that uses Genodes nic session. Please have a
> look at:
> 
> /repos/ports-foc/src/lib/l4lx/genode_net.cc
> /repos/ports-foc/src/drivers/genode_net.c
> 
> If the driver does not find a nic service it silently does nothing. As
> stated above, the nic service is provided by dde_ipxe for x86 on Genode.
> 
> Do you see any errors on real hardware? If so, please send the log
> output of that, not the one from Qemu. dde_ipxe does have support for
> rtl8169 and should be able to detect your card automatically. Otherwise
> Qemu should work fine with an e1000 setting, for it is just a device
>     model there that uses the Linux infrastructure.
> 
> Regards,
> 
> Sebasitan
> 
> > On Fri, Jul 1, 2016 at 1:29 AM, Sebastian Sumpf
> > <sebastian.su...@genode-labs.com 
> <mailto:sebastian.su...@genode-labs.com>
> > <mailto:sebastian.su...@genode-labs.com
> <mailto:sebastian.su...@genode-labs.com>>> wrote:
> >
> > Hi John,
> >
> > On 06/30/2016 03:58 PM, john stokes wrote:
>     > > qemu-system-i386: Unsupported NIC model: r8169
> >
> > Qemu does not have r8169 support but only rtl8139.
> >
> > Regards,
> >
> > Sebastian
> >
> > --
> > Sebastian Sumpf
> > Genode Labs
> >
> > http://www.genode-labs.com · http://genode.org
> >
> > Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
> > Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
> >
> >
> >
> >
> > 
> --
> > Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in 
> San
> > Francisco, CA to explore cutting-edge tech and listen to tech 
> luminaries
> > present their vision of the future. This family event has something 
> for
> > everyone, including kids. Get more information and register today.
> > http://sdm.link/attshape
> > ___
> > genode-main mailing list
> > genode-main@lists.sourceforge.net
> <mailto:genode-main@lists.sourceforge.net>
> > <mailto:genode-main@lists.sourceforge.net
> <mailto:genode-main@lists.sourceforge.net>>
> > https://lists.sourceforge.net/lists/listinfo/genode-main
> >
> >
> >
> >
> >
> 
> --
> > Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park
> in San
> > Francisco, CA to explore cutting-edge tech and listen to tech
> luminaries
> > present their vision of the future. This family event has
> something for
> > everyone, including kids. Get more information and register today.
> > http://sdm.link/attshape
> >
>

Re: e1000 nic driver problem

2016-06-30 Thread Sebastian Sumpf
Hi John,

On 07/01/2016 05:58 AM, john stokes wrote:
> it's fine but can you tell me how can i boot l4linux without e1000 or
> rtl8139 support?

It is sufficient to not start any nic_drv (dde_ipxe) in your Genode
configuration (as you stated). L4Linux does not have access to any
*real* hardware on Genode, it is a virtual machine. Network access is
provided by a Linux driver that uses Genodes nic session. Please have a
look at:

/repos/ports-foc/src/lib/l4lx/genode_net.cc
/repos/ports-foc/src/drivers/genode_net.c

If the driver does not find a nic service it silently does nothing. As
stated above, the nic service is provided by dde_ipxe for x86 on Genode.

Do you see any errors on real hardware? If so, please send the log
output of that, not the one from Qemu. dde_ipxe does have support for
rtl8169 and should be able to detect your card automatically. Otherwise
Qemu should work fine with an e1000 setting, for it is just a device
model there that uses the Linux infrastructure.

Regards,

Sebasitan

> On Fri, Jul 1, 2016 at 1:29 AM, Sebastian Sumpf
> <sebastian.su...@genode-labs.com
> <mailto:sebastian.su...@genode-labs.com>> wrote:
> 
> Hi John,
> 
> On 06/30/2016 03:58 PM, john stokes wrote:
> > qemu-system-i386: Unsupported NIC model: r8169
> 
> Qemu does not have r8169 support but only rtl8139.
> 
>     Regards,
> 
> Sebastian
> 
> --
> Sebastian Sumpf
> Genode Labs
> 
> http://www.genode-labs.com · http://genode.org
> 
> Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
> Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
> 
> 
> 
> 
> 
> --
> Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> <mailto:genode-main@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 
> 
> 
> 
> --
> Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> 
> 
> 
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: e1000 nic driver problem

2016-06-30 Thread Sebastian Sumpf
Hi John,

On 06/30/2016 03:58 PM, john stokes wrote:
> qemu-system-i386: Unsupported NIC model: r8169

Qemu does not have r8169 support but only rtl8139.

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Attend Shape: An AT Tech Expo July 15-16. Meet us at AT Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Feather: A very lightweight web service for Genode platforms.

2016-06-17 Thread Sebastian Sumpf
Hi,

On 06/16/2016 10:06 PM, Guido Witmond wrote:
> Hi All,
> 
> 
> A small update on my experiments:
> 
> - the site ran stable for about a week;
> 
> - but it got stuck on some interrupt [1]; perhaps a resource leak
> somewhere. Are there known leaks in libc, vfs, lwip?
> 
> - it's not so slow as I thought it was as I was measuring it wrong. It
> reaches half the speed of nginx on linux on that box.
> 
> - I get it to run on both FOC 64 and Nova 64 bit;
> 
> - with Nova, I don't see the serial console output, however, it serves
> pages just as fast as FOC; any ideas how to configure it to get the Nova
> console output?
> 
> 
> According to my colo's power panel, it uses 12 watts more under FOC than
> Linux. I've been looking at the cpufreq regulator that has been build
> for arndale but not yet for x86. I've copied Stefan's Regulator driver
> code to os/drivers/platform/spec/x86 but I lack the knowledge of the
> hardware io-ranges, registers and such to implement a working version.
> Who has some definitive docs on how to implement a simple power regulator.

This is ARM and Exynos5 specific code, therefore it will not work at all
on x86 platforms. For x86 one would have to implement ACPI power
management and also per device driver support in order to safe some
watts here. So, please don't follow this path any further.

Sebastian

> Or is this power consumption because I run FOC with the kernel debugger
> enabled?
> 
> 
> My plans are to add a ssh-listener to allow for remote update of the web
> site files.
> 
> Cheers,
> 
> Guido Witmond.
> 
> 1:
> CPU 0 [f00118c3]: IRQ ENTRY
> CPU 1 [f003c7b2]: Maskable Interrupt
> 
>id cpu name pr sp  waitto  stack state
>   249 0   platform_ep  80184 (1528) ready
>   240 0   irq_sig_recv 80184   242*  (1528) rcv_wait
>   238 0   signal handler   80 797b*  (1032) rcv_wait
>   232 0   signal handler   80 ae (1032) ready
>   22c 0   signal handler   80 e3e5*  (1032) rcv_wait
>   226 0   signal handler   80119   11b*  (1032) rcv_wait
>   20a 0   signal handler   8014d   14f*  (1032) rcv_wait
>   1ff 0   signal handler   80184   186*  (1032) rcv_wait
>   1f4 0   timer_drv_ep 80 79 -   (1528) rcv_wait
>   1ed 0   nic_drv_ep   80 ae   249   (1528) ready,rcv_wait
>   1e6 0   ep   80 e3   1e8*  (1528) rcv_wait,fpu
>   1df 0   ep   80119   1e1*  (1528) rcv_wait
>   1d8 0   report_rom_ep8014d -   (1528) rcv_wait
>   1bd 0   ep   80184   1bf*  (1528) rcv_wait
>   1ac 0   platform_drv 80184   1bd   (1528) rcv_wait
>   19d 0   platform_drv 80 39 -   (1528) rcv_wait
>   177 0   acpi_report_rom  8014d   179*  (1528) rcv_wait
>   168 0   acpi_report_rom  80 39 -   (1528) rcv_wait
>   140 0   acpi_drv 80119   1df   (1032) rcv_wait
>   132 0   acpi_drv 80 39 -   (1528) rcv_wait
>   10c 0   feather  80 e3   1e6   (1032) rcv_wait
>fd 0   feather  80 39 -   (1528) rcv_wait
>d5 0   nic_drv  80 ae   1ed   (1528) rcv_wait
> present list: (tid-sorted)  =mode
> =select
> 
> 
> 
> --
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity planning
> reports. http://sdm.link/zohomanageengine
> 
> 
> 
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: netperf

2016-06-07 Thread Sebastian Sumpf
Hi Johannes,

sorry for the late answer, I first had to fix RPI's USB and networking
after the last release, it seemed to be kind of or totally broken since
the 15.05. release. Reinier pointed me kindly to this. My answer can be
found below.

On 05/24/2016 10:11 PM, Johannes Schlatow wrote:
> On Tue, 28 Jan 2014 22:48:25 +0100
> Sebastian Sumpf <sebastian.su...@genode-labs.com> wrote:
>> On 01/28/2014 10:22 PM, Julian Stecklina wrote:
>>> On 01/28/2014 01:07 PM, Sebastian Sumpf wrote:  
>>>> Thanks for your tests! But I don't like the 65 MBit/s thing! What
>>>> is going on? Is this RX or TX?  
>>>
>>> For the extremely bad case, it might be interesting to capture a
>>> packet trace and use tcptrace/xplot on it.  
>>
>> Thanks Julian, I will have a look at it, even though Alex seems to be
>> our plot guy .-)
> 
> Hi Sebastian,
> 
> I was wondering whether you actually looked intro that as we are
> experiencing some strange effects with netperf as well.
> 
> Let me briefly summarise our findings:
> We are running netperf_lwip on base-linux in order to evaluate how our
> changes in the software affect the networking performance. For
> TCP_STREAM, I get results of approx. 350Mbit/s while TCP_MAERTS results
> in approx. 110Mbit/s. Interestingly, this asymmetry is reverse to the
> results that have been discussed here.
> However, what actually puzzles me most is the fact that
> netperf_lwip_bridge draws a quite different picture. More precisely,
> TCP_STREAM falls down to round about 170Mbit/s which I guess is
> perfectly explainable by the additional context switch and copying of
> the nic_bridge. Yet TCP_MAERTS performs better, i.e. 130Mbit/s with the
> additional nic_bridge. All results are reproducible. I could also
> observe a similar behaviour on hw_rpi.
> 
> AFAIK the netserver code for TCP_STREAM only uses recv() whereas the
> code for TCP_MAERTS only uses send(). Hence, it's totally
> comprehensible to me that we experience asymmetric throughput results
> depending on which path (RX or TX) performs better. However, I just
> don't get why the nic_bridge, which not only adds a context switch but
> also additional copying, increases the performance for TCP_MAERTS.
> 
> I guess this might be caused by bulk processing of multiple packets
> enabled by the asynchronous packet-stream interface. I think I could
> test this by assigning a high scheduling priority to the nic_bridge
> so that it always processes a single packet.
> 
> Up to this point I have basically two questions:
> 1. Has anyone made any further investigations of Genode's networking
> performance?
> 2. Any other (possible) explanations for my observations?
> 
1. Not really.

2. TCP uses receive and send window sizes. This means that an ACK has to
be sent for each window or segment, how they call it, not for each TCP
packet. Usually, the higher the throughput is, the larger are the window
sizes. We have seen window sizes as large as 20 KB, but only when Linux
is sending. The window size dynamically adapts to the rate of ACKs and
heavily depends on the timing of both communication partners. Also when
sending (MAERTS) we cannot batch packets as we do when receiving them
directly from the hardware (there can be multiple packets available in
one DMA transaction - on most cards). This means each packet is send to
the card in a separate request (especially on Linux). Therefore, I would
see the sending as a base line when sending or receiving one packet at a
time. Because of the nic_bridge, the timing changed so that the ACK rate
somehow caused a slightly larger TCP window (you can check that with
wireshark). Because of batching, the receive numbers would be in turn
the current (and not so great ;) upper limit. That would be my three cents.

Programming a TCP/IP stack that actually works and performs in the wild
is complicated stuff and I guess we could keep our whole company busy,
just doing that. I hope this helps to explain some parts of your
observation,

Sebastian





-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Problem with the AHCI driver

2016-04-18 Thread Sebastian Sumpf
Hi Charles,

On 04/15/2016 05:53 PM, Charles HH wrote:
> Hello,
> 
> I'm trying to create a custom Turmvilla-like scenario on my computer,
> but I'm running into a problem similar to the one Nobody III experienced
> (https://sourceforge.net/p/genode/mailman/genode-main/thread/20150601102048.GR9181%40genode-labs.com/#msg34161774)
> : when trying to access a physical hard disk with ahci_drv and part_blk,
> both components are launched, and ahci_drv reports the ATA device
> correctly, but the session is never built (part_blk hangs somewhere in
> the Driver constructor and ahci_drv never executes the _create_session
> function of Root_multiple_clients). The test run script works perfectly
> on Qemu however, and the content of the drive is read correctly. I
> experienced the same issue on my laptop, but I couldn't get any debug
> information because it doesn't have a serial port. Enabling or disabling
> IOMMU didn't affect the outcome.
> Did I miss something or is the hardware I'm using simply unsupported
> (the computer from which the linked logs where obtained is a Dell
> Optiplex 7010 with a c216 chipset) ? Should I open a new issue on the
> GitHub ?
> 
> Regards,

I think most likely the DVD driver (ATAPI) does not come up correctly.
Can you try to disable the drive in the BIOS or use the patched attached
that disables ATAPI support in the AHCI driver? If it works, I will
disable ATAPI support per default in future versions and make it
configurable, since you are not the first where it caused trouble.

Cheers,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



diff --git a/repos/os/src/drivers/ahci/ahci.cc b/repos/os/src/drivers/ahci/ahci.cc
index 5d88180..c61f789 100644
--- a/repos/os/src/drivers/ahci/ahci.cc
+++ b/repos/os/src/drivers/ahci/ahci.cc
@@ -154,12 +154,13 @@ struct Ahci
 	ready_count++;
 	break;
 
+#if 0
 case ATAPI_SIG:
 case ATAPI_SIG_QEMU:
 	ports[i] = new (Genode::env()->heap()) Atapi_driver(port, device_ready);
 	ready_count++;
 	break;
-
+#endif
 default:
 	PWRN("Device signature %x unsupported", sig);
 			}
--
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: build instructions from release notes for toolchain riscv fail (in my case)

2016-03-03 Thread Sebastian Sumpf
Hi Menno,

On 03/03/2016 03:13 PM, Menno Valkema wrote:
> Hi Everyone,
> 
> While playing around with the new riscv support, I followed the
> instructions in the release notes in order to build a riscv toolchain
> from scratch. (See section 'Steps to test Genode on RISC-V', url
> http://genode.org/documentation/release-notes/16.02).
> 
> Step 2 involves Building Genode and a test scenario. After cloning
> https://github.com/ssumpf/genode.git I ran:

this is a mistake from my side. Sorry about that. Genode's master branch
resides at: https://github.com/genodelabs/genode.git

I also updated the branch above to current Genode master, so it now
should also work.

Regards,

Sebastian

> $ ./tool/tool_chain riscv
> 
> This fails immediately, and it seems the riscv argument is not supported
> in this version. The following error is given:
> 
> make: *** No rule to make target `riscv'.  Stop.
> 
> When I try the same thing with the repository from the Genodelabs github
> (https://github.com/genodelabs/genode.git) this argument is supported
> and a build starts.
> 
> Same goes for the next step:
> 
> $ ./tool/create_builddir hw_risc
> 
> This only succeeds with the repository from genodelabs. Otherwise it
> gives the error:
> 
> make: *** No rule to make target ` path>/tool/builddir/etc/build.conf.hw_risc', needed by ` full
> path/build/hw_risc/etc/build.conf'.  Stop.
> 
> To me it seems some url's might have been mixed up while writing the
> release notes. Or after writing the releasenotes were published the
> repositories have somehow been modified.
> 
> In any case, if you run into the same issues, you might want to clone
> https://github.com/genodelabs/genode.git instead of the git repo given
> in the release notes.
> 
> Regards, Menno
> 
> --
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 


--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Running demo on Virtualbox

2016-02-11 Thread Sebastian Sumpf
Hi Paulo,

On 02/10/2016 05:30 PM, Paulo wrote:
> Hi Sebastian,
> 
> Thanks for the feedback.
> 
>> Currently Genode outputs some error messages that might be misleading,
>> but are necessary for us developers. "Quota exceeded!" is one of them.
>> This means the configured component or program memory quota in Genode's
>> 'config' file does not suffice, such a program will then ask its parent
>> (in this case 'init') for more memory, which is successful in your case
>> ('upgrading quota donation').
> 
> Ok, I didn't notice the "upgrading quota", that does make sense.
> 
>> One can configure 'fb_sdl' via a ROM file and there are many ways to
>> provide one. Nevertheless, this 'config' is not mandatory and 'fb_sdl'
>> will also function without it. So, I can see no problems in the Log you
>> provided. Therefore, I will attach a working output. Please let me know
>> at what point your output differs. Also, what Linux version are you
>> using in your VirtualBox setup? Information about the distribution,
>> kernel version, and if it is 32 or 64 bit helps us a lot.
>>
>>> Also, I can't seem to find instructions for building an ISO. Is that
>>> possible?
>>
>> Yes, add '--include image/iso' to the 'RUN_OPT' variable in
>> /etc/build.conf The ISO will in your case be located under
>> /var/run/demo.iso
> 
> I'm using ubuntu 15.10 (I didn't see the suggestion to use an LTS
> version in time). I'm using the 15-05 genode fundations pdf as a
> guide, particularly page 27. I probably need to read some more to get
> a better grasp of some concepts, but meanwhile please bear with me. I
> did:
> 
> ./tool/ports/prepare_port nova && ./tool/ports/prepare_port x86emu
> ./tool/create_builddir nova_x86_64 &&  cd build/nova_x86_64
> sed -r 's/^#(REPOSITORIES.*libports)/\1/g' -i etc/build.conf
> (cd ../../repos/libports && make prepare) # as suggested on etc/build.conf
> make run/demo
> 
> The iso file is created at this point, and I'm able to boot the VM
> with it and see the demo in action, but qemu refuses to run (please
> see the attached full  output), because:
> 
> spawn qemu-system-x86_64 -no-kvm -cpu core2duo -m 256 -serial
> mon:stdio -cdrom var/run/demo.iso
> Could not initialize SDL(No available video device) - exiting


> What is the "No available video device" about? I can do `startx` and
> get lxde running, so I don't think it's a virtualbox "hardware" issue.
> What step am I missing?

Qemu requires SDL for the display. Please add:

QEMU_OPT += -sdl

to your build.conf file that should fix the issue.

> By the way, the `make prepare` for libports is only suggested in
> etc/build.conf; it might be helpful to include it on the instructions
> for the "simple system scenario" on the book.
> 

Thanks for the suggestion,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Running demo on Virtualbox

2016-02-06 Thread Sebastian Sumpf
Hi Paulo,

On 02/04/2016 04:04 PM, Paulo wrote:
> Hi all,
> 
> I'm trying to get the genode demo to run on Virtualbox, from a windows
> server 2012 box.
> I've been to the (awesome) Sunday talk at FOSDEM and the prospect of
> getting genode running on my personal laptop is really exciting, but I'd
> like to try it on a VM first. I realise genode is "focused on extending
> the community of users" on 2016, which is great news for me.

Yes and thanks.

> I've managed to make run/demo, but it halts after a few "Quota
> exceeded!", and can't even run the config module.
> I realize I must be missing some quite basic detail, but I've been
> looking for answers on the Genode Foundations book, on the website and
> on Google, and so far I'm still feeling a bit lost.
> 
> make run/demo (cropped) output:
> spawn ./core
> Genode 15.11-106-g2a698ff
> int main(): --- create local services ---
> int main(): --- start init ---
> int main(): transferred 17592186044415 MB to init
> int main(): --- init created, waiting for exit condition ---
h> [init] Could not open ROM session for module "ld.lib.so
"
> Quota exceeded! amount=24576, size=4096, consumed=24576
> [init] upgrading quota donation for Env::CPU (8192 bytes)
> Quota exceeded! amount=32768, size=4096, consumed=32768
> [init] upgrading quota donation for Env::CPU (8192 bytes)
> Quota exceeded! amount=40960, size=4096, consumed=40960
> [init] upgrading quota donation for Env::CPU (8192 bytes)
> [init -> fb_sdl] Could not open ROM session for module "config"
> [init -> fb_sdl] Could not obtain config file
> 
> Can anyone shed some light or point me to the right part of the
> documentation?

Currently Genode outputs some error messages that might be misleading,
but are necessary for us developers. "Quota exceeded!" is one of them.
This means the configured component or program memory quota in Genode's
'config' file does not suffice, such a program will then ask its parent
(in this case 'init') for more memory, which is successful in your case
('upgrading quota donation').

One can configure 'fb_sdl' via a ROM file and there are many ways to
provide one. Nevertheless, this 'config' is not mandatory and 'fb_sdl'
will also function without it. So, I can see no problems in the Log you
provided. Therefore, I will attach a working output. Please let me know
at what point your output differs. Also, what Linux version are you
using in your VirtualBox setup? Information about the distribution,
kernel version, and if it is 32 or 64 bit helps us a lot.

> Also, I can't seem to find instructions for building an ISO. Is that
> possible?

Yes, add '--include image/iso' to the 'RUN_OPT' variable in
/etc/build.conf The ISO will in your case be located under
/var/run/demo.iso

Thanks for trying,

Sebastian

> Thanks,
> /Paulo
> 
> 
> --
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151=/4140
> 
> 
> 
> ___
> genode-main mailing list
> genode-main@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 

Genode 15.11-107-ge204f0f 
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 17592186044415 MB to init
int main(): --- init created, waiting for exit condition ---
[init] Could not open ROM session for module "ld.lib.so"
Could not allocate dataspace with size 4096
[init] upgrading quota donation for Env::CPU (8192 bytes)
[init] unsupported program segment type 0x65041580
Quota exceeded! amount=32768, size=4096, consumed=32768
[init] upgrading quota donation for Env::CPU (8192 bytes)
Quota exceeded! amount=40960, size=4096, consumed=40960
[init] upgrading quota donation for Env::CPU (8192 bytes)
[init -> fb_sdl] Could not open ROM session for module "config"
[init -> fb_sdl] Could not obtain config file
[init -> fb_sdl] creating virtual framebuffer for mode 1024x768@16
[init -> report_rom] parsing legacy  policies
[init -> report_rom] parsing legacy  policies
[init -> nitpicker_config] top-level node  missing in input ROM xray
[init -> nitpicker_config] could not obtain input value for input xray_enabled
[init -> nitpicker_config] top-level node  missing in input ROM xray
[init -> nitpicker_config] could not obtain input value for input xray_enabled
[init -> nitpicker] create session with args: label="status_bar", ram_quota=28672
[init -> nitpicker] create session with args: label="xray_trigger", ram_quota=28672
[init -> nitpicker] create session with args: label="scout", ram_quota=28672
[init -> nitpicker] create session with args: label="pointer", ram_quota=28672
[init -> status_bar] could not 

Re: grsecurity R.I.P.

2015-12-22 Thread Sebastian Sumpf
Hi Jyri,

On 12/21/2015 02:16 PM, Jyri Hovila [Turvamies.fi] wrote:
> Dear everyone,
> 
> perhaps someone has already brought this up on the list, but I'll dig it a 
> bit anyways.
> 
> As I'm sure many of the people on the list are already aware, grsecurity has 
> gone closed source with their stable branch.
> 
> While grsecurity is far from dead, the fact that the stable version is now 
> only available to paying customers does change the scene somewhat. It also 
> reminds us that open source does not guarantee endless availability.
> 
> Despite all the great innovations the grsecurity team has come up with, the 
> "solution" of having to (individually) patch each and every new kernel 
> version was never a real solution anyways.
> 
> What I would personally love to see is Linux kernel running on/in Genode. I 
> know it's very different from running a micro kernel, and I know it would 
> require lots of work - but then again, the past situation with grsecurity 
> (and other tweaks) required hell of a lot of work anyways.
> 
> I'm actually working on a little thingy based on OpenBSD, and would be 
> interested in leading a task force with the goal of making both BSD and Linux 
> kernels run on Genode. If any similar minded individuals are listening in, 
> please give me a shout!
> 

I am not sure what you mean here. Genode can already execute Linux
within a virtual machine (Seoul or VirtualBox) or as a paravirtualized
version on top of the Fiasco.OC kernel. If this is not sufficient, what
is your approach?

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [Fiasco.OC][Genode] Creating an unstripped image file

2015-12-17 Thread Sebastian Sumpf
Hi Nourhan,

On 12/17/2015 06:27 PM, Nourhan Mohamed wrote:
> Dear all,
> 
> I was wondering if there was an option to create an unstripped image
> from my application over fiasco.oc kernel. I am starting to use Genode
> platform and was trying to follow the hello app tutorial defined in the
> Genode Operating System Framework 15.05 manual and trying to  run it
> using Qemu but need to enable the debug symbols to be able to debug why
> the app doesn't load successfully on Qemu using gdb.
> 

All applications are unstripped by default, only in release mode
(non-default) they are stripped. I am not sure about the Fiasco kernel
itself though.

Just in case, try a 'objdump -h ' on your program, if the
output shows '.debug.*' sections, the binary is unstripped.

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: AHCI Driver

2015-10-07 Thread Sebastian Sumpf
Hi Harm,

On 10/04/2015 09:20 PM, Harm de Vries wrote:
> Hello everyone,
> 
> The error message ``Device does not support native command queuing:
> abort'' is written repeatedly to the log when I try to read from a SATA
> disk using the AHCI driver. Is this driver only meant to work with a
> SATA disk that supports native command queuing (the HBA supports it)?

I added experimental support for non-NCQ devices/HBAs:

https://github.com/ssumpf/genode/commit/b2ba7ef2f474056a59e0311623c4053586a11ba1

If you want, give it a try,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Full-scale, agent-less Infrastructure Monitoring from a single dashboard
Integrate with 40+ ManageEngine ITSM Solutions for complete visibility
Physical-Virtual-Cloud Infrastructure monitoring from one console
Real user monitoring with APM Insights and performance trend reports 
Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911=/4140
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: AHCI Driver

2015-10-05 Thread Sebastian Sumpf
Hello Harm,

On 10/04/2015 09:20 PM, Harm de Vries wrote:
> Hello everyone,
> 
> The error message ``Device does not support native command queuing:
> abort'' is written repeatedly to the log when I try to read from a SATA
> disk using the AHCI driver. Is this driver only meant to work with a
> SATA disk that supports native command queuing (the HBA supports it)?

Currently yes, if NCQ is not supported, 'dma_ext' instead of 'fpdma'
would have to be called.

> While looking at the code of the driver to determine the cause of the
> error I noticed that:
> 
> 1. In ahci.cc en main.cc the word `available' has been misspelt as
> 'avaiable'.

Okay.

> 2. In ahci.h the bitfield that indicates support for native command
> queuing in the HBA seems to be misspelt as `Sncg'. There is also a
> function with the name `ncg' and this abbreviation is also used in the
> function `info'.

Okay, maybe I need glasses .)

> 3. The struct `Identity' in ahci.h describes the structure of the result
> of an ATA command. Is there a reason why this struct and the
> corresponding function `identify_device' are not in the file `ata_driver.h'?

There is no reason, the ATA commands should also be moved to this file.

Cheers,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Multiple PL2303 on PandaBoard

2015-08-27 Thread Sebastian Sumpf
Hi Daniel,

On 08/27/2015 03:18 PM, Krefft, Daniel wrote:
 Hi,
 
 
 as mentioned in your IRC channel, I need to connect several PL2303
 USB2UART bridges on PandaBoard's USB ports.
 
 
 But, I get the following error (found in raw.cc):
 
 
 Device type already present (vendor: %x product: %x). Overwrite!​
 
 
 What changes are required to manage multiple devices with the same type.
 

If both PL2303s have the same product and vendor ids, it is currently
unsupported, since right now we cannot distinguish them at the USB
server side.

Regards,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Problems with building NetBSD rump filesystem

2015-08-26 Thread Sebastian Sumpf
On 08/26/2015 03:48 AM, Nobody III wrote:
 Looks like you need zlib from libports. You might also need other
 libraries from there, so I would just run make prepare in the libports
 directory. It may take a while, but lots of things depend on various
 ported libraries, so I wouldn't try to download just the ones necessary
 to compile dde_rump.

'make prepare' is deprecated and will be removed. Please use:

'tool/ports/prepare_port zlib' for this purpose. Preparing everything
should not be necessary because the build system will check if packages
are prepared and are up to date. Otherwise one will see warnings right
at the beginning of the build process.

Cheers,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: lsusb applet not found

2015-07-28 Thread Sebastian Sumpf
Hi,

On 07/23/2015 10:37 AM, Thotheolh Tay wrote:
 
 Hi,
 
 When I run the 'lsusb' command, it tells me 'lsusb: applet not found'
 message. How do I solve this ?
 
 When I plugin a USB flash drive into the system, I get a weird message.
 It must be plugged in for the first time into the USB port and after
 that subsequent USB drives will not spawn the message again.
 
 [   14.935514] Clocksource tsc unstable (delta = 200916449 ns)
 [   14.826599] Switching to clocksource l4kipclk
 
 I am missing something in the L4Linux/Fiasco.OC build image I made to
 enable USB support ?
 
 Are the clocksource and lsusb messages correlated ?

L4Linux is just a Genode application, therefore it will not have access
to any hardware out of the box. Even if you enable USB support within
the L4Linux kernel, some work has to be done on the Genode side to give
L4Linux access to the IO memory and the interrupt of the USB host
controller. The other way would be to write a Linux-stub driver that
directly communicates with Genode's USB driver.

Cheers,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Genode as a mobile operating system

2015-07-28 Thread Sebastian Sumpf
Hi Ben,

On 07/27/2015 05:42 PM, Nobody III wrote:
 One possible target for Genode, aside from PCs and development boards,
 would be smartphones. The security measures tend to be don't install
 this app if you don't want to give it these permissions. With Genode,
 this problem is easy to fix. Also, security exploits would be a lot
 harder. It seems to make sense to make a mobile operating system with
 Genode. We could use Cyanogenmod and/or Android code for app and
 hardware support. I have an old working android phone that I would be
 happy to use to test this, and will probably have another available
 within a few weeks. Note that there are no official Cyanogenmod ports
 for either device, but there might be an unofficial port for one of them.

We already did this exemplary for Exynos 5250, which is the Samsung
Galaxy S4 platform. Unfortunately, these platforms or SoCs are not very
well documented, if at all (e.g., Snapdragon). With the only well
documented SoC (Texas Instrument's OMAP) gone, smartphone platforms have
become really really hard to deploy without having manufacturer support.

Cheers,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Trying out the hello tutorial

2015-07-28 Thread Sebastian Sumpf
Hi Daren,

On 07/23/2015 10:32 AM, Daren Sin wrote:
 Hi everyone!
 
 I've been trying out the hello tutorial, and after following the steps
 in the tutorial
 (http://genode.org/documentation/developer-resources/client_server_tutorial),
 I got stuck at the /./core/ step. I got an Illegal instruction (core
 dumped). I can't seem to find a post around here that describes a
 similar problem.

 What might be the problem?
 
 Correct me if I'm wrong, I'm supposed to have a /config/ file in the
 //build/bin/ directory, but since there wasn't one at first, I created a
 new document and put in the necessary code, as described on the website.
 

Assuming you want to use the Linux version of Genode please try the
following in the shell:

 genode-src-dir/tool/create_builddir linux_x86
 cd genode-src-dir/build/linux_x86

Add the line:

 REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial

to 'etc/build.conf' below the other 'REPOSITORIES' entries

call:

 make run/hello

from the build directory. Watch out for Linux packets that are not
installed, like TCL or TCL's 'expect' package!

I hope this helps,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: USB armory USB driver - porting

2015-07-23 Thread Sebastian Sumpf
Hi Vladimir,

good to see that you made some progress.

On 07/13/2015 12:57 AM, Vladimir Lushnikov wrote:
 Hello all,
 
 It has taken a lot longer than I hoped initially, but I have some
 progress to report on the USB driver port for the USB armory.
 
 The current state is that the controller bringup looks like it *does
 something*  but the functionality (and device hotplugging) does not work.
 
 My current code is in here:
 https://github.com/vladimir-lu/genode/tree/issue/imx53_usb_host_staging
 
 As I mentioned, upon hotplugging a device (tested with a memory stick
 and of course the official host adapter) - there seems to be no log
 activity, but when the memory stick is plugged in from boot time it at
 least recognises that there is something connected to the port. The two
 log files are here:
 https://gist.github.com/anonymous/101496bdfb266b460e51
 
 The relevant line in the log is:
 [init - usb_drv] dev_dbg: state 7 ports 1 chg 0002 evt 
 
 vs (in the non-recognised case)
 [init - usb_drv] dev_dbg: state 7 ports 1 chg  evt 
 
 I do not have any good ideas at the moment where to go next with
 debugging this problem - can anyone suggest places to look?
 
 I guessed that the issue is in the clock setup, but writing to the
 Usboh3_60M and Usbphy1 in Ccgr2 and Ccgr4 respectively does not seem to
 make any difference. The usb phy has no tranceiver on this platform so
 does not need enabling. The OTG port is being used for host mode.
 
 As you may notice, the platform.cc now contains a few header definitions
 + functions that I copy+pasted from the wifi driver but did not want to
 put in lx_emul.cc - is that correct or should I just stick them in
 linux_emul.cc for all to use?
 
 I have also run the input-test and that does not print any events
 received. One interesting line comes out after a few seconds however:
 
 [init - usb_drv] dev_dbg: debounce: port 1: total 2000ms stable 0ms 
 status 0x401
 
 I want to get host mode working before I start with the OTG + gadget
 porting (there is some diff primarily in the OTG stuff between 3.14.5
 and 4.0 so I am not sure how much of 3.14.5 will actually work without
 getting a 3.14.5 kernel running on the armory first...)

Sounds good, if I have some spare time, I will have a look and try your
stuff out on the Armory and see what might be the problem. So far your
output looks reasonable, the controller receives HUB events and the
'debounce' message is also normal. You could try to enable the
'DEBUG_TRACE' macro in 'lx_emul.h' and look for suspicious dummy
functions calls that might be important for the correct functioning of
the controller.

Unfortunately some guessing is required when porting Linux code,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: AHCI still not working

2015-05-31 Thread Sebastian Sumpf
On 05/31/2015 08:53 AM, Nobody III wrote:
 My mindset has basically been that it when it could take me hours to
 find a solution that someone else already knows, it seems a little
 pointless. As for Git specifically, it seems like a tool with many
 advanced features, most of which I'll never use. Also, I'm better at
 learning to use tools by seeing what commands do what (examples) rather
 than by reading lengthy documentation. I have spent far too much time
 reading documentation to find simple answers. Most of what I read I
 forget, and I sometimes later have to read the same documentation again
 to figure out how to do the same thing I did earlier. Basically, at this
 time I don't think I need to use much of the advanced functions of Git,
 and so most of the knowledge will go unused and will inevitably be
 forgotten. Please correct me if I'm wrong. If my memory were better, or
 if I were involved in more large-scale projects, I would find reading
 the book more useful. Sorry for still being hesitant. I really have read
 a lot if documentation, forums, and mailing lists.
 I really do want to learn, and am willing to take the time needed, but I
 also want to get to working on the AHCI issue rather than spending a
 couple days reading about Git.
 I also have two main projects of my own that I switch between, both of
 which are fairly ambitious.
 By the way, I have read the Genode manual. (I skipped some sections, but
 I still probably read the majority of it.)
 I think the people who don't like helping a lot of beginners don't
 understand that the documentation is often part of the problem. I learn
 best when given the big picture and organized documentation that I can
 use as a reference. I'm best at remembering things if I learn them to
 use them in the near future.

git clone
git fetch
git rebase (-i)
git commit
git push
git remote add *
git branch
git log
git show
git add/del

That is basically all you need and it is sufficient to know them all in
its basic forms. As Christian mentioned, if you understand the concept
behind Git, there is no magic to it. I suggest to play around a little.

It is easier than you think, I have been through cvs, svn, bzr, hg
myself, and Git is easily the most efficient one,

Sebastian

P.S. Reading is good, but trying is even better :-)

--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Port of base-hw to RISC-V / lowRISC ?

2015-05-22 Thread Sebastian Sumpf
Hi Rolf,

On 05/22/2015 02:55 PM, Rolf Sommerhalder wrote:
 Dear list,
 
 GSoC has accepted a project to port seL4 to RISC-V (64 bit)
 architecture, which is used in the lowRISC System-on-a-Chip (SoC) Open
 Source project.
 Further, lowRISC supports another project to port rump kernels to
 minimal RISC-V cores which lowRISC plans to use as I/O co-processors,
 for example as TCP/IP offload engines [1].
 
 There are tool chains and ports of Linux kernels to RISC-V / lowRISC
 to run them in simulators and emulators (qemu), on FPGA (Xilinx Zynq),
 and ASIC [2, 3].
 
 Although my HW/SW co-design skills are a bit rusty, I am tempted to
 reverse that and try such a port. In order to get a better idea about
 complexity and effort required, I currently study the sources of
 base-hw for ARMv7, and its recent port to x86_64 in the staging
 branch.
 
 Is anyone aware of such a porting effort, or has anyone else an
 interest to run Genode base-hw on RISC-V64, and might want to chime in
 eventually?

I just started on this one, actually right now. The first step would be
to build the Genode tool chain for RISC-V. So, if that is ready I can
let you know. The next steps would roughly be:

1. Update Genode's cxx library
2. Get base-hw compiling
3. Add UART support and implement the platform dependent kernel part
4. Extent the dynamic linker
5. (look into libc)

So, maybe there is something for you there.

We aware of the efforts you described above.

Cheers,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: implementation of dummies methods

2015-03-01 Thread Sebastian Sumpf
Hello again,

On 02/28/2015 09:09 AM, Mohammad Hamad wrote:

 Thank you for replaying, could you please give me an example of doing it
 with the first option .

I guess ISAKMP is a library that heavily depends on libc, right? If so,
I would go for option 2 (libc plugin). If it actually requires 'fork'
(as Christian mentioned), there is only option 3 (noux) available.

For an example of option 1 (even so it does not depend on libc in the
first place), you can have a look at 'dde_linux' which is a port of some
Linux drivers to Genode. What one basically has to do, is to provide an
environment where the ported program can run. That requires the
following steps:

1. Make it compile: Provide definitions of any
function/structure/macro/enum the program uses from libc.

2. Make it link: Provide a dummy function for each one that leads to a
'undefined reference' message from the linker.

3. Make it work: Implement all dummy functions that are actually used by
the program in order to fulfill its core functionality. For example, one
can omit book keeping or any other fancy stuff. This requires a little
experience, though.

I would call the above, the minimal Genode porting guide :-)

Cheers,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: TZ support without NDA

2015-03-01 Thread Sebastian Sumpf
On 02/28/2015 02:12 PM, Madhu (Macaque Labs) wrote:
 
 
 On Sat, Feb 28, 2015 at 9:57 AM, Sebastian Sumpf
 sebastian.su...@genode-labs.com
 mailto:sebastian.su...@genode-labs.com wrote:
 
 On 02/28/2015 02:38 AM, Madhu (Macaque Labs) wrote:
  Who are the ARM cpu vendors who publish their trust zone support ?
 
  I know Freescale does, know for a fact Qualcomm does not !
  Mediatek ?
 
 Yes, Freescale does, that is why it is currently our ARM platform of
 choice .-) Also ARM does (Versatile Express), but that is just a proof
 of concept.
 
 We are currently manufacturing an i.MX6 tablet for developers with taper
 enabled.
 We can get the OEM to sell that to other hackers but i.MX6 is not going
 to cut it.
 
 We tried working with Qualcomm but the NDA was too stringent.So we gave
 that up.
  But a local
 tablet vendor may launch a proprietary version based on Qualcomm parts.
 We have an RD relationship with Samsung, so have asked them, let us see
 how that goes.
 

Sounds good, if you receive one, send it over :-)


 
 
  Trying to do a virtualized android tablet distribution. Can we have
  a genode sub project on this. I am sure, others would be interested.
 
 Sure, but that heavily depends on resources available at our side. If
 you can start or even do it, I think most of the eight people here will
 be glad to help you.
 
 I keep getting 100s of internship applications every year, so manpower
 is not the
 problem. Problem is that most interns are simply not cut out for kernel
 hacking.

I know, kernel hacking is really different and requires a lot of experience.

 Hopefully I can get a small team selected soon. But the bigger problem is
 my bandwidth. If we can decide on the approach in this forum and work
 out a concrete roadmap,
 I will try to arrange for the resources. Currently I have 2-3 Master's
 projects on Genode
 every year.
 

Okay, what are your suggestions?

 
 
  Also attempting a port of bionic on genode. First hack is done,
  doing so excited testing. If this works, then genode on genode
  virtualization might suffice.
 
 Ok, if you need help, just ask here.
 
 The question here is that is it worthwhile virtualizing Linux or just
 provide bionic on Genode running on Genode.
 

I would mostly likely follow ARM's hardware virtualization route (see
Genode 15.02). Another possibility is to update L4Linux which now
already includes the Android patches. Is there any specific need for
TrustZone? Or do you require just some form of virtualization?

 
  Using
  Freescale currently but it is A9, so has no VT support and
  power usage is on the higher side.
 
 We have some power management on A15, not for A9 though.
 
  I see a couple of Samsung exynos boards on  the support list,
  I think both are a15 based cores. So does that mean we can hack
  a galazy tab or a high end galaxy s phone  to run genode ? Has to be the
  wifi
  or the Asian version.
 
 Maybe, we do have a pretty good documentation on Exynos 5250, but
 everything above is problematic or ends up in looking at some Linux
 source code.
 
 Maybe then we should standardize on Samsung and focus our efforts on that.
 

What is available is this:
http://www.samsung.com/global/business/semiconductor/file/product/Exynos_5_Dual_User_Manaul_Public_REV100-0.pdf


  
 
 
  Both run Exynos. US 3g/lte variants typically run snapdragon though
  I believe that is changing with the new s6.
  would be nice to have a cortex a 53/57 device though.
 
 Yes, it would be. No hardware at our side.
 
  I have also asked AMD for details on their new Carrizo processor.
  this is a multi core x86 with a cortex ax supposedly running trustzone.
  Wanr to try a virtualize Ubuntu on this with security modules secured
  through tz.
 
 Let us know how this turns out!
 
 
 Will know by this week, talking to the product manager. Helps that we
 have our students
 in large volumes in every semiconductor company on the planet !

Then you are in a way better position than us, I guess :-)

 
  Our own open source Shakti processor based on RiscV is getting its  TZ
  support
  but it will be at least end of the year before we can release it on
  fpga. Student code
  takes to ensure to clean up ! Also riscv mmu slecture is not available 
 yet.
  The UCB rocket processor is ready but some one has to hack TZ into it.
 
 RiscV is since FOSDEM my self-declared hobby project. No progress so far
 though, but if you guys actually build an ASIC that would be awesome.
 Maybe I should start with that soon :-)
 
 
 We will be releasing basic SoCs by June, maybe earlier. I have a TZ
 controller
 getting reading but it is very buggy and I need a couple of months of
 code review
 before I can release it.  But I would rather focus on our tagged ISA
 scheme which will
 provide HW level capability

Re: implementation of dummies methods

2015-02-27 Thread Sebastian Sumpf
On 02/27/2015 09:08 PM, Mohammad Hamad wrote:
 Hi all, 
 
 in libc/src/lib/libc there is Dummies.cc file which contains many methods.
 Actually i am trying to port ISAKMP which use most of them ( such as fork, 
 getuid ,
 socketpair, sendmsg and etc) .  i was able to compile it but i face many no 
 implementation for  method message , so I think i need to implement all 
 these methods, am i right ?!
 
 from where i should start, should i use new libc  plugin or i should 
 implement them in specific places. 
 

When porting stuff to Genode, there are three ways to go: 1. Try to do
without libc. 2. Implement a libc plugin that meets your needs. 3. Build
it in the noux environment.

1 = most desirable
3 = least desirable

Good luck,

Sebastian`


--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: AHCI (cont)

2015-01-08 Thread Sebastian Sumpf
Hi Ben,
On 01/05/2015 04:01 PM, Nobody III wrote:
 After spending some time creating and testing new run scripts, I have
 found that Genode doesn't have my problem in QEMU. It does, however,
 have the same issue when using the USB driver in storage mode providing
 Block to part_blk. It seems that the problem is in part_blk or in a call
 that part_blk makes that rump_fs and test_libc_ffat don't make. I would
 send a couple run scripts now, but my internet isn't working, so I'm
 sending this from my phone.

In case your internet is working again, please send the run script(s).

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: AHCI (cont)

2014-12-28 Thread Sebastian Sumpf
Here are my three cents,

On 12/28/2014 07:26 AM, Nobody III wrote:
 Gmail is strugging with sending one or more of my emails, so I've
 created a new email thread. Basically, AHCI isn't working with part_blk
 for me. I am running genode (foc_x86_32) on real hardware. With rom_blk,
 part_blk works fine. With ahci, it freezes. I have found the line of
 code in part_blk relevant to the freezing to be the following part of
 partition_table.h:
 _session(Driver::driver().session())
 
 Any help?

For me it looks as if the AHCI driver is not working for you. It didn't
work before for you, as I didn't really follow this thread: Do you own
different hardware by now? Did you start the ACPI driver? What kernel
are you using? You can try to set the 'verbose' variable in
'repos/os/src/driver/ahci/include/ahci_driver_base.h' to 'true' and look
for an Int status: x global: x port: x error: x message. If you don't
get one, the driver is not working and part_blk will be unable to read
the partition table, and thus not announce its block session. If you
don't see the message above, please do as Josef suggested:

 In that regard I treat a log file of the executed scenario as
 mandatory and the used run script as sufficient information.
 Providing the run script enables us to examine the issue more
 directly and on certain accounts it can be turned into a regression
 test.

Do you have serial output by now? If not, that should be the first thing
to fix.

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: status of iwlwifi driver

2014-11-26 Thread Sebastian Sumpf
On 11/25/2014 12:59 AM, Nobody III wrote:
 What is the status of the wifi support in general? I have a Ralink USB
 wifi adapter. How much support does Genode have for it?

USB wifi is a different beast. It means wrapping the USB driver around
wifi requests. We have that working for ethernet adapters like ASIX
88172/88179 and SMC95xx devices, but not for wifi as of now.

By the way, what is the status of your USB-serial output? Still looking
forward to seeing some, because IDE has to be re-enabled sooner or later.

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: ATAPI driver still not working

2014-11-03 Thread Sebastian Sumpf
Hi Ben,

On 11/03/2014 04:04 PM, Nobody III wrote:
 The ATAPI driver is still unable to detect my hard drive (or my CD drive
 for that matter), even though I have switched to a 32-bit Genode system.
 Any help?

Unfortunately, the ATAPI driver is a really old peace of code. We
haven't used in a long time and there doesn't even exist a proper run
script to test it. I've tried the ones I could find, some seem to work a
little, while others do not work at all. Also there are issues with I/O
APIC using kernels, where one might need the ACPI driver to locate the
corresponding GSI's that replace the legacy IRQ numbers as well as find
out polarity and trigger modes (especially for Fiasco/Fiasco.OC). We
have regarded legacy IDE support as obsolete for a while. I can try, to
at least, build a working run script for some kernel working in Qemu for
a start, but I can't promise, since my time is limited. It seems like
Nova is a good candidate for the time being. So my suggestion would be,
build a run script and find out why the driver does not get an interrupt
(which usually is the cause of all the trouble). The corresponding
driver output should be:

Enabling interrupts:
[init - atapi_dev Device initialized! Enabling interrupts ...

When receiving the first interrupt:
[init - atapi_drv] First block: 0 last block last block, block size 512

It might be the wrong IRQ number (double check with Linux) or the wrong
trigger/polarity information. If you don't even get to the first output
above, something is really messed up. In that case I would advice you
that you send us the complete output of the test run, your exacts
hardware specifications, and if possible a working run script.

Regards,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: ATAPI driver still not working

2014-11-03 Thread Sebastian Sumpf
On 11/03/2014 08:27 PM, Nobody III wrote:
 How can I get the output from Genode running on real hardware? Even
 using a higher screen resolution would be extremely helpful.

The usual way to go, as of any starting systems developer, would be to
attach a serial cable (rs232) to your testing machine and connect it to
your developers box, if the box doesn't have an rs232 jack, an USB to
R232 adapter will suffice. In order to see something you will need a
serial program like minicom, picocom, or even socat on your development box.

Sebastian


 On Nov 3, 2014 11:28 AM, Sebastian Sumpf
 sebastian.su...@genode-labs.com
 mailto:sebastian.su...@genode-labs.com wrote:
 
 Hi Ben,
 
 On 11/03/2014 04:04 PM, Nobody III wrote:
  The ATAPI driver is still unable to detect my hard drive (or my CD
 drive
  for that matter), even though I have switched to a 32-bit Genode
 system.
  Any help?
 
 Unfortunately, the ATAPI driver is a really old peace of code. We
 haven't used in a long time and there doesn't even exist a proper run
 script to test it. I've tried the ones I could find, some seem to work a
 little, while others do not work at all. Also there are issues with I/O
 APIC using kernels, where one might need the ACPI driver to locate the
 corresponding GSI's that replace the legacy IRQ numbers as well as find
 out polarity and trigger modes (especially for Fiasco/Fiasco.OC). We
 have regarded legacy IDE support as obsolete for a while. I can try, to
 at least, build a working run script for some kernel working in Qemu for
 a start, but I can't promise, since my time is limited. It seems like
 Nova is a good candidate for the time being. So my suggestion would be,
 build a run script and find out why the driver does not get an interrupt
 (which usually is the cause of all the trouble). The corresponding
 driver output should be:
 
 Enabling interrupts:
 [init - atapi_dev Device initialized! Enabling interrupts ...
 
 When receiving the first interrupt:
 [init - atapi_drv] First block: 0 last block last block, block
 size 512
 
 It might be the wrong IRQ number (double check with Linux) or the wrong
 trigger/polarity information. If you don't even get to the first output
 above, something is really messed up. In that case I would advice you
 that you send us the complete output of the test run, your exacts
 hardware specifications, and if possible a working run script.
 
 Regards,
 
 Sebastian
 
 
 
 --
 Sebastian Sumpf
 Genode Labs
 
 http://www.genode-labs.com · http://genode.org
 
 Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
 Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
 
 
 
 
 
 --
 ___
 genode-main mailing list
 genode-main@lists.sourceforge.net
 mailto:genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main
 
 
 
 --
 
 
 
 ___
 genode-main mailing list
 genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main
 


--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: L4Linux on x86_64

2014-10-31 Thread Sebastian Sumpf
Hi Ben,
On 10/31/2014 05:59 AM, Nobody III wrote:
 It seems that L4Linux expects either x86_32 or arm. Would it work to
 compile the x86_32 version on x86_64? If not, why? What level of
 multiarch support does Genode have?

L4Linux is Fiasco.OC specific, runs only on that kernel, and is
available for x86_32 and ARM platforms only. It has nothing to do with
multiarch, but is one option to use virtualization on Genode and another
reason why Genode supports multiple kernels. For L4Linux x86_64 support,
one would have to ask the actual developers of L4Linux and Fiasco (read:
http://www.kernkonzept.com and  of course the l4hackers list
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers).

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: AHCI Doesn't Work

2014-10-31 Thread Sebastian Sumpf
On 10/31/2014 08:34 AM, Christian Helmuth wrote:
 Just a quick note: We have very good experience with Qemu 1.5 and 1.6 but up 
 to know do not support more recent versions because of the always reoccuring 
 issues with device models.

True, but AHCI will not work there on base-foc (I am using Qemu 1.5.1),
haven't tested base-fiasco lately, it might work without IPAPIC. On the
other, base-nova should work.

Sebastian

 Christian
 
 On October 31, 2014 7:54:27 AM CET, Sebastian Sumpf 
 sebastian.su...@genode-labs.com wrote:
 Hi again,

 On 10/30/2014 11:11 PM, Nobody III wrote:
 I have tested the run script run/ahci (os/run/ahci) on both
 foc-x86_64
 and fiasco-x86. It doesn't work on either platform. In the
 Limitations
 and Known Issues section of the README, it does mention that it
 won't
 work properly on real hardware or on Fiasco.OC, but it also doesn't
 work
 on Fiasco in qemu. I would very much like AHCI to work on Fiasco.OC
 on
 real hardware. Can someone who understands the problems fix it? (Or
 teach me enough so I can fix it; note that all my experience with
 Genode
 is in configuration, not actual programming, and that I'm not
 familiar
 with OS development.)

 The README is a bit of outdated I guess. The driver runs on real
 hardware on both Fiasco as well as the OC version. It will not work for
 these kernels within Qemu, because there are issues with the interrupt
 level/polarity settings and the ACPI tables of Qemu. I have already
 fixed that a number of times, but I don't regard the Qemu support as a
 good option anymore because there are too many changes with each Qemu
 version. If you want to fix it for your Qemu version, have a look at
 'repos/base-foc/src/core/irq_session_component.cc' and
 contrib/foc-hash/src/kernel/foc/l4/pkg/l4sys/include/icu.h', that
 would be appreciated.

 Sebastian


 -- 
 Sebastian Sumpf
 Genode Labs

 http://www.genode-labs.com · http://genode.org

 Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
 Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




 --
 ___
 genode-main mailing list
 genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main
 


--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Malloc / free ansd rump_fs -Slab-backend exhausted

2014-08-21 Thread Sebastian Sumpf
Hi Wolfgang,

On 08/18/2014 08:09 PM, w_schm...@gmx.de wrote:
 Hi,
 
 this seems to be happen only if rump_fs has a larger quota – the file
 can be larger if rump_fs has a smaller quota. (memory tests of the
 system have shown no errors so RAM should be okay)
 
 this is indeed very strange. I hope you have a Genode version where
 there is no Slab-Backend allocator, have a look at
 'include/util/allocator_fap.h in the dde_rump repository, there should
 only be a PERR message with the slab warning left.
 
 The file looks like below,

Yes, that is the right one. We most likely got a problem with memory
accounting in this case. Regarding your block cache question: The block
cache has not really been tested up until now, so there may still be
bugs. If you could provide a branch (e.g., on GitHub) or a run script, I
might be able to have a look at it. On the other hand, Stefan will be
back next week and, since wrote the thing, he might be able to clear
things up.

Cheers,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Malloc / free ansd rump_fs -Slab-backend exhausted

2014-08-11 Thread Sebastian Sumpf
Hi Wolfgang,


On 08/11/2014 04:12 PM, w_schm...@gmx.de wrote:
 Hi,
  
 further information:
  
 this seems to be happen only if rump_fs has a larger quota – the file
 can be larger if rump_fs has a smaller quota. (memory tests of the
 system have shown no errors so RAM should be okay)

this is indeed very strange. I hope you have a Genode version where
there is no Slab-Backend allocator, have a look at
'include/util/allocator_fap.h in the dde_rump repository, there should
only be a PERR message with the slab warning left. Otherwise, our
current Rump kernels version is not up-to-date and they have fixed
some serious memory issues there (especially with the paging daemon).
If you have a current Genode version, then there is something wrong with
the memory accounting, which leads Rump to think it has got more memory
than the Genode quota actually suggests.

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: PicoTCP

2014-08-02 Thread Sebastian Sumpf
On 07/29/2014 10:14 AM, Daniele Lacamera wrote:
 Hello,
 
 I've stomped onto an old post on this list, considering a port for picoTCP.
 https://www.mail-archive.com/genode-main%40lists.sourceforge.net/msg01976.html
 
 If I understood correctly, the major concern was around the threading model.
 
 We now have a library that provides blocking socket operations in a
 OS-agnostic way:
 https://github.com/tass-belgium/picotcp-bsd
 
 All you would need to provide is a couple of synchronization
 mechanisms (- a mutex and a msgqueue/semaphore) in your own -osal
 module, besides the clock source and the allocator as for any ports in
 the stack. Feel free to ask for any information, but please keep us in
 cc since we are not subscribed to the mailing list.
 

Thanks for the info, which sounds very interesting. Having not used
picoTCP, I do have two questions: How is the Gigabit-Ethernet
performance and does the stack support IPv6?

Regards,

Sebastian


--
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Using a real harddisk

2014-05-14 Thread Sebastian Sumpf
Hi,

On 05/11/2014 09:17 PM, w_schm...@gmx.de wrote:
 Hi,
 
 I have a few stupid questions regarding the use of real hardware.
 
 I want to access files from a harddisk using a block cache. The partition 
 would be /sda7/test in ext2 format. (and for example file1.txt) I tried to 
 start nova directly form disc - works with mouse  keyboard now.
 
 With the example file in /dde_rump/run/rump2_ext2.run I do not see how I 
 could use an existing harddrive.
 
 I understand the script as following:
 First a bin/ext2.raw file is created and then a file system is created with 
 mke2fs.
 The ram_blk points to the file. How can it be pointed to a drive like /sda7 
 instead?
 Is it even possible now to use a real harddsic file system? Or would i need 
 to create a file like in the example (only permanent) and put the file 
 together with the rest of the program in grub so that nova boots with 
 providing the file?

Assuming your machine is an x86 derivative and supports AHCI, you could
use Genode's AHCI driver, which will expose a block sesssion (see:
os/src/drivers/ahci/README). In order to access the partitions on your
disk, a server called 'part_blk' is required (see:
os/src/server/part_blk/README for its configuration). So, you would have
to remove 'ram_blk' and add 'ahci_drv', 'part_blk' (routed to
'ahci_drv'), adjust 'rump_fs' to be routed to 'part_blk' partition 7.

 The second part of the question is according to things needed to execute the 
 rump_ext2.run script.
 As i tried to create prepare PKG=libs i needded to install:  subversion, 
 flex, bison
 Are they missing in the build tools or is no specific version needed?

There should be no specific version needed.

 The next questions are regarding the block cache. If I try to execute the 
 script, i get a Tests finished succesful, but a lot of messages like
 [init] Cannot respond to resource request - out of memory
 [init -blk_cache] could not expand dataspace pool

The cache is greedy and tries to get as much memory from its parent as
possible. By the way, rump has a build in block cache also.

 To be honest I do not see in the configuration at all how it should work.
 If i understand it correctly a qemu with 64 MB RAM is started, and 
 test-blk-cli is given a quantum of 2GB?

That only means that test-blk-cli will get all the remaining RAM.

 The test-blk-cli gets a route for Block to the Cache and the Cache to 
 Blksrv. What I don't understand with the sizes is: Why has the client the 
 largest size and not the smallest? If it has the largest it could just read 
 complete files and keep it in memory?

I think the author just did not want to calculate the amount of RAM
required for the test program.

 I tried the following: I copied the rump_ext2.run script and created an 
 entry with start name blk_cache and put a route from rump_fs to Block child 
 blk_cache, from blk_Cache as child ram_blk.
 I started it and then see that the script said that blk_cache was not found, 
 but it run succesful.
 
 My question is therefore: if a service name is in multiple clients and one 
 client in a route is not available, is automatically another client with 
 same service name used? Or have i forgot something?

It worked because 'blk_cache' wasn't started, and therefore only one
block session was announced ('ram_blk'). If the block cache had been
started and 'test-libc_vfs' didn't have a route entry for the block
service, init would complain about ambiguous routes to service Block.

 Afterwards i included in the set build_components section server/blk_cache 
 (after drivers/timer) and entered as boot module blk_cache.  Is this the 
 correct way of including the cache?

Yes it is!

 The result of this was that I got an output with: [init - blk_cache] 
 updating quota for SIGNAL session, an init rump_fs upgrade quota output and 
 afterwards and a long stop after init-rump_fs Backend::Backend() Backend 
 blk_size 512 Afterwards the script stopped with   Test execution timeout. 
 with error 254) What could I have done wrong with the configuration of this 
 scenario?

Ok, I will try to reproduce the behavior.

Regards,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Using a real harddisk

2014-05-14 Thread Sebastian Sumpf
Hi again,

On 05/14/2014 09:27 PM, w_schm...@gmx.de wrote:
 Hi,
 
 Thanks for the answer.
 
 I want to access files from a harddisk using a block cache. The partition
 would be /sda7/test in ext2 format. (and for example file1.txt) I tried 
 to
 start nova directly form disc - works with mouse  keyboard now.
 
 Assuming your machine is an x86 derivative and supports AHCI, you could
 use Genode's AHCI driver, which will expose a block sesssion (see:
 os/src/drivers/ahci/README). In order to access the partitions on your
 disk, a server called 'part_blk' is required (see:
 os/src/server/part_blk/README for its configuration). So, you would have
 to remove 'ram_blk' and add 'ahci_drv', 'part_blk' (routed to
 'ahci_drv'), adjust 'rump_fs' to be routed to 'part_blk' partition 7.
 
 I have 2 possible machines with AHCI and AMD64/Intel64.
 
 Maybe I understand it completly wrong, but in the AHCI description there is 
 a part with
 On real hardware and on kernels taking advantage of I/O APICs (namely NOVA 
 and
 Fiasco.OC) we still lack support for ACPI parsing and thus for interrupts,
 leading to a non-working driver. ( 
 https://github.com/genodelabs/genode/blob/master/repos/os/src/drivers/ahci/README
  
  )
 
 Doesn't that mean that the AHCI driver won't work with nova or real hard 
 drive? That sentence is one of the reasons why I ask.
 If nova /real hardware does not work like mentioned in the readme, is there 
 another way to load from disc? Or should another kernel (?L4k?) do the 
 trick?

Ops, I should take this part out of the README. We do have ACPI parsing
and interrupt re-write support by now. You will need to build
'drivers/acpi', 'drivers/pci', and if you use NOVA and if your machine
has an IOMMU 'drivers/pci/device_pd'. In the Genode configuration you
only need to start the 'acpi_drv', which will start the other one or two
as children. A sample run script can be found under 'os/run/ahci.run'

Another way to access hard disks (again on x86) is to use the IDE
interface, which is supported by the ATAPI driver ('drivers/atapi'),
again have a look at the README in 'os/drivers/atapi'.

 The cache is greedy and tries to get as much memory from its parent as
 possible. By the way, rump has a build in block cache also.
 
 Yes I have seen that in the rump description there stood something that the 
 server will use most of the RAM for cache.
 
 I thought I coudl do the following:
 Give the block cache e.g. 16MB RAM.
 Give the Rump Server 6 MB, and load different 4 MB files. I thought that by 
 loading the second file the first one will get out of the Rump cache but 
 loaded by the block cache.

Okay that should work, I would give rump a little more memory.

 I have seen that the framebuffer seems to have a sort of multiplexer. Is 
 something similiar available for filesystems?

The rump server supports connections from multiple clients, so one could
see it as sort of a multiplexer.

 RAM...
 I think the author just did not want to calculate the amount of RAM
 required for the test program.
 
 O.K.
 
 Afterwards i included in the set build_components section 
 server/blk_cache
 (after drivers/timer) and entered as boot module blk_cache.  Is this the
 correct way of including the cache?
 
 Yes it is!
 
 Good. :-)
 
 The result of this was that I got an output with: [init - blk_cache]
 updating quota for SIGNAL session, an init rump_fs upgrade quota output 
 and
 afterwards and a long stop after init-rump_fs Backend::Backend() Backend
 blk_size 512 Afterwards the script stopped with   Test execution timeout.
 with error 254) What could I have done wrong with the configuration of 
 this
 scenario?
 
 Ok, I will try to reproduce the behavior.
 
 Thanks, that would be interesting. If it helps I can upload my configuration 
 file somewhere?

I will try it out first as described above, if I cannot reproduce it you
could fork Genode on GitHub and push it into a branch there, or if it is
just a run script just send it via email.

 I think I can try file access and AHCI first on friday (ATM a lot of work, 
 I'm interested at genode because of part time study)

Good luck!

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: dde-linux, musb driver code page faults in Routine:Main

2014-04-04 Thread Sebastian Sumpf
Hi Bob,

On 04/02/2014 06:15 PM, Bob Stewart wrote:
 On 04/02/2014 10:40 AM, Bob Stewart wrote:
 I'm porting the musb driver code from Linux, using the 14.02 release of
 Genode. Basically, I'm using the main.cc code in dde-linux/src/lib/usb
 to start the usb subsystem and usb port drivers. The main.cc code is
 essentially unchanged and the start_usb_driver function is identical to
 the release code.

 When running the executible containing this code a page fault occurs
 when _run is called in Routine::main(). The reason appears to be the
 schedule() function returns a pointer to 0x0 it got from _next which was
 returned from _list. The pointer in in _list appears to have been
 removed at the start main(). It looks to me like the code in main.cc in
 src/lib/usb would fail for any usb driver code. What am I missing?

 Thanks,
   Bob Stewart

 --
 ___
 Genode-main mailing list
 Genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main

 Appears to be related to not including a call to subsys_usb_init() which 
 I had commented out inadvertently. Not sure why that is the case but 
 I'll figure it out. With that call included, main() now runs as expected.

The 'Routine' code resembles a sort of user-level threading. Each Linux
thread will get a stack there and scheduling is done by performing
setjmp/longjmp calls. To bootstrap this scenario the USB main thread is
added as a routine during startup, it calls all the initialization
functions, which in turn might create new Linux threads (that become
routines in the end). For USB controllers Linux creates at least the HUB
thread (see: contrib/drivers/usb/core/hub.c). After initialization we
don't need the main thread anymore, since it does not perform any Linux
driver related work, so it is removed from the routine list. By not
calling 'subsys_usb_init', the HUB thread will not be created, causing
the thread list in  routine to be empty, which it cannot handle right
now, hence the page fault.
The whole purpose of this scheme is to avoid races and only schedule
Linux threads a well defined points, like 'wait_for_completion', have a
look at 'src/lib/usb/signal/events.cc' for most points. This way we
don't have to deal with Linux's synchronization primitives and all it's
pre- and post-conditions.

I hope this clarifies things a little,

Sebastian


--
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: dde-linux, musb driver code page faults in Routine:Main

2014-04-04 Thread Sebastian Sumpf
On 04/04/2014 06:52 PM, Bob Stewart wrote:
 Thank you Sebastian for your very clear explanation.
 
 I'm moving forward now into the wonderfull world of platform device
 initialization.
 

Good luck with that one .-) If it's an ARM-SOC, I would try to see if
Uboot could do the work for me, otherwise is Linux often the last
resort, since hardware manufacturers just love to omit things like
PHY-documentation or even clock gates.

Please let me know how things go along for you and as you might know:
Contributions are always welcome over here,

Sebastian


--
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: netperf

2014-01-28 Thread Sebastian Sumpf
Hi Anna,

On 01/28/2014 11:02 AM, Анна Будкина wrote:
 Hello!
 
 I'm running netperf TCP_STREAM and TCP_MAERTS tests for lxip stack and i
 obtained extremely low result - 5x10^6 bits/s  while the maximum
 throughput is 1000 mbit/s .
 I wonder what could be the reason for that.

That is only 5 mbit/s, which is indeed pretty low. Right now the LXIP
stack should at least do about 500 mbit/s in either direction. Please
let me know what hardware platform you are using, so I can try to
reproduce the behavior.

Thanks,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: netperf

2014-01-28 Thread Sebastian Sumpf
Hi again Anna,

for the future, please sent your replies at the bottom not the top, like
I am doing now .-)

On 01/28/2014 11:58 AM, Анна Будкина wrote:
 I'm measuring throughput between two hosts. I use genode running on
 fiasco.OC on one machine and monolithic Linux on another machine.
 There's 82579LM NIC on each host. I'm running netperf_lxip.run script.
 As acpi driver doesn't work on my machine i'm using pci_drv driver.
 Another problem is that level-triggered interrupts are not recieved and
 i'm polling interrupts in the internal cycle in
 /os/src/lib/dde_kit/interrupt.cc:
 while (1) {
 _lock.lock();
 if (_handle_irq) _handler(_priv);
 _lock.unlock();
 }
 
 //while (1) {
 //_irq.wait_for_irq();
 /* only call registered handler function, if IRQ is not
 disabled */
 //_lock.lock();
 //if (_handle_irq) _handler(_priv);
 //_lock.unlock();
 //}
  I've done the same thing while testing l4re network stack and it didn't
 affect performance then.

It sounds like as if you are using an x86 machine - right? Polling is a
no go and I have tried to fix the interrupt-mode issue (edge vs. level
vs. low and high) on Fiasco OC on several occasions. Unfortunately,
there seems to be no universal solution to that. Maybe you should ask
about that one on the L4Hackers mailing list:
l4-hack...@os.inf.tu-dresden.de

If you can afford it and if you're running on x86, please try the Nova
version of Genode and let me know about the outcome, performance-wise of
course. I appreciate any hints why the ACPI-driver is not working (other
then it is not an x86 computer of course).

For the book: I cannot recommend the changes above!

Sebastian


--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: netperf

2014-01-28 Thread Sebastian Sumpf
On 01/28/2014 01:20 PM, Christian Helmuth wrote:
 Sebastian,
 
 On Tue, Jan 28, 2014 at 01:07:19PM +0100, Sebastian Sumpf wrote:
 Thanks for your tests! But I don't like the 65 MBit/s thing! What is
 going on? Is this RX or TX?
 
 Complete netperf output follows
 
  TCP_STREAM ---
 spawn netperf-2.6.0 -H 10.0.0.65 -P 1 -v 2 -t TCP_STREAM -c -C -- -m 1024 
 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.0.65 
 () port 0 AF_INET
 Recv   SendSend  Utilization   Service Demand
 Socket Socket  Message  Elapsed  Send Recv SendRecv
 Size   SizeSize Time Throughput  localremote   local   remote
 bytes  bytes   bytessecs.10^6bits/s  % S  % U  us/KB   us/KB
 
  87380  16384   102410.0265.59   34.95-1.00174.598  
 -1.249 
 
 Alignment  Offset BytesBytes   Sends   BytesRecvs
 Local  Remote  Local  Remote  Xfered   Per Per
 Send   RecvSend   Recv Send (avg)  Recv (avg)
 8   8  0   0 82158592  1024.00 80233   8905.12   9226
 
 Maximum
 Segment
 Size (bytes)
   1448
 
 calculation: overall bytes / size per packet / time = packets per second
  82158592 Bytes / 1024 Bytes / 10.02 s = 8007 packets/s
 
 ! PERF: TCP_STREAM  65.59 MBit/s ok
 
  TCP_MAERTS ---
 spawn netperf-2.6.0 -H 10.0.0.65 -P 1 -v 2 -t TCP_MAERTS -c -C -- -m 1024 
 MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.0.65 
 () port 0 AF_INET
 Recv   SendSend  Utilization   Service Demand
 Socket Socket  Message  Elapsed  Recv Send RecvSend
 Size   SizeSize Time Throughput  localremote   local   remote
 bytes  bytes   bytessecs.10^6bits/s  % S  % U  us/KB   us/KB
 
  87380  16384   102410.00   543.35   39.06-1.0023.555  -0.151 
 
 Alignment  Offset BytesBytes   Recvs   BytesSends
 Local  Remote  Local  Remote  Xfered   Per Per
 Recv   SendRecv   Send Recv (avg)  Send (avg)
 8   8  0   0 679280808  13875.90 48954   16384.00  41474
 
 Maximum
 Segment
 Size (bytes)
   1448
 
 calculation: overall bytes / size per packet / time = packets per second
  679280808 Bytes / 1024 Bytes / 10.00 s =66336 packets/s
 
 ! PERF: TCP_MAERTS  543.35 MBit/s ok
 
 
 The manual states
 
   TCP_STREAM  It is quite simple, transferring some quantity of data
   from the system running netperf to the system running
   netserver.
   TCP_MAERTS  A TCP_MAERTS (MAERTS is STREAM backwards) test is “just
   like” a TCP_STREAM test except the data flows from the
   netserver to the netperf. 
 
 So, the scenario is much slower if the Genode side is _receiving_.

Without cursing: This is no good! I will look into that!

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: netperf

2014-01-28 Thread Sebastian Sumpf
Hi Vasily,

On 01/28/2014 12:58 PM, Sartakov A. Vasily wrote:
 Hello. 
 
 If you can afford it and if you're running on x86, please try the Nova
 version of Genode and let me know about the outcome, performance-wise of
 course. I appreciate any hints why the ACPI-driver is not working (other
 then it is not an x86 computer of course).
 
 Just for curiosity: Have you compared LXI performance with different kernels 
 - NOVA vs FOC? on hardware, ofc

No not really, this thing has been optimized for the Exynos 5250
platform on Fiasco OC, using a Gigabit-USB-network adapter. Right now I
am looking into the rump stuff (http://wiki.netbsd.org/rumpkernel),
while hoping to get a decent performance out of it! Just talk to my
colleagues at FOSDEM about it!

Sorry I cannot be there,

Sebastian

--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: netperf

2014-01-28 Thread Sebastian Sumpf
On 01/28/2014 01:49 PM, Анна Будкина wrote:
 
 2014-01-28 Sebastian Sumpf sebastian.su...@genode-labs.com
 mailto:sebastian.su...@genode-labs.com
 
 On 01/28/2014 01:20 PM, Christian Helmuth wrote:
  Sebastian,
 
  On Tue, Jan 28, 2014 at 01:07:19PM +0100, Sebastian Sumpf wrote:
  Thanks for your tests! But I don't like the 65 MBit/s thing! What is
  going on? Is this RX or TX?
 
  Complete netperf output follows
 
   TCP_STREAM ---
  spawn netperf-2.6.0 -H 10.0.0.65 -P 1 -v 2 -t TCP_STREAM -c -C --
 -m 1024
  MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to
 10.0.0.65 () port 0 AF_INET
  Recv   SendSend  Utilization  
 Service Demand
  Socket Socket  Message  Elapsed  Send Recv
 SendRecv
  Size   SizeSize Time Throughput  localremote  
 local   remote
  bytes  bytes   bytessecs.10^6bits/s  % S  % U
  us/KB   us/KB
 
   87380  16384   102410.0265.59   34.95-1.00  
  174.598  -1.249
 
  Alignment  Offset BytesBytes   Sends   Bytes  
  Recvs
  Local  Remote  Local  Remote  Xfered   Per Per
  Send   RecvSend   Recv Send (avg)  Recv (avg)
  8   8  0   0 82158592  1024.00 80233   8905.12
   9226
 
  Maximum
  Segment
  Size (bytes)
1448
 
  calculation: overall bytes / size per packet / time = packets per
 second
   82158592 Bytes / 1024 Bytes / 10.02 s = 8007
 packets/s
 
  ! PERF: TCP_STREAM  65.59 MBit/s ok
 
   TCP_MAERTS ---
  spawn netperf-2.6.0 -H 10.0.0.65 -P 1 -v 2 -t TCP_MAERTS -c -C --
 -m 1024
  MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to
 10.0.0.65 () port 0 AF_INET
  Recv   SendSend  Utilization  
 Service Demand
  Socket Socket  Message  Elapsed  Recv Send
 RecvSend
  Size   SizeSize Time Throughput  localremote  
 local   remote
  bytes  bytes   bytessecs.10^6bits/s  % S  % U
  us/KB   us/KB
 
   87380  16384   102410.00   543.35   39.06-1.00  
  23.555  -0.151
 
  Alignment  Offset BytesBytes   Recvs   Bytes  
  Sends
  Local  Remote  Local  Remote  Xfered   Per Per
  Recv   SendRecv   Send Recv (avg)  Send (avg)
  8   8  0   0 679280808  13875.90 48954  
 16384.00  41474
 
  Maximum
  Segment
  Size (bytes)
1448
 
  calculation: overall bytes / size per packet / time = packets per
 second
   679280808 Bytes / 1024 Bytes / 10.00 s =66336
 packets/s
 
  ! PERF: TCP_MAERTS  543.35 MBit/s ok
 
 
  The manual states
 
TCP_STREAM  It is quite simple, transferring some quantity of data
from the system running netperf to the system running
netserver.
TCP_MAERTS  A TCP_MAERTS (MAERTS is STREAM backwards) test is “just
like” a TCP_STREAM test except the data flows from the
netserver to the netperf.
 
  So, the scenario is much slower if the Genode side is _receiving_.
 
 Without cursing: This is no good! I will look into that!

 Thank you very much for the reply! I will try to use Genode on Nova to
 perform these tests.

So, it is x86 i guess.

Sebastian


--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Compiling Genode+Fiasco.OC for ARM

2013-10-30 Thread Sebastian Sumpf
Hi,

On 10/29/2013 07:47 PM, Reinier Millo Sánchez wrote:
 Hello
 
 I'm trying to compile Genode+Fiasco.OC for ARM.
 I have downloaded the Genode latest revision from:
   https://github.com/genodelabs/genode
 and the Fiasco.OC+L4RE latest revision (r59) from:
   http://svn.tudos.org/repos/oc/tudos/trunk/

I would not recommend to checkout Fiasco and L4RE by hand, instead I
would suggest do go to the 'base-foc' directory and enter 'make prepare'
there. This will checkout the kernel and other parts needed by Genode.
Currently this checkout will match SVN revision 56. So, if you have any
urgent reason to use r59, take a look in 'base-foc/contrib' and try to
checkout the same things for r59. The problem is, that we apply some
patches to Fiasco/L4RE, so things might not work correctly.

 I have copied the Fiasco.OC+L4RE to genode/base-foc/contrib folder.
 I have created my build directory and tried to compile it
 
   ./tool/create_builddir foc_pbxa9 BUILD_DIR=build_arm
   cd build_arm
   make -j2 run/demo
 
 In this case, when it's trying to compile the moe server got this error, but 
 when compiling the same sample for i386 don't use moe and compile without 
 errors.
   ...
   Building 
 /home/millo/Work/Compiling/genode-master/build_arm/l4/pkg/moe/server/src/.general.d
   make2: Leaving directory 
 `/home/millo/Work/Compiling/genode-master/base-foc/contrib/l4/pkg/moe/server/src'
   make2: Entering directory 
 `/home/millo/Work/Compiling/genode-master/base-foc/contrib/l4/pkg/moe/server/src'
   Library dependencies missing: libkproxy libloader l4re-util cxx_libc_io 
 libc_be_minimal_log_io libsupc++_minimal in directory 
 '/home/millo/Work/Compiling/genode-master/base-foc/contrib/l4/pkg/moe/server/src';
  aborting.
   make3: Entering directory 
 `/home/millo/Work/Compiling/genode-master/build_arm/l4/pkg/moe/server/src/OBJ-arm_armv7a-l4f'
   
 /home/millo/Work/Compiling/genode-master/base-foc/contrib/l4/mk/binary.inc:341:
  *** Cflags dependencies missing: libkproxy libloader l4re-util cxx_libc_io 
 libc_be_minimal_log_io libsupc++_minimal in directory 
 '/home/millo/Work/Compiling/genode-master/base-foc/contrib/l4/pkg/moe/server/src';
  aborting.. Stop.

There is no need to build 'moe' for Genode. All that is required is the
kernel, 'bootstrap', and 'sigma0'. You could try to remove it from the
build system (see attached patch).

Greetings,

Sebastian
-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



commit 300faf9de768e81fb319d05dfef0e8666c083e35
Author: Sebastian Sumpf sebastian.su...@genode-labs.com
Date:   Wed Feb 20 12:30:53 2013 +0100

L4RE: Remove 'moe' from 'switch_ram_base' target

diff --git a/l4/Makefile b/l4/Makefile
index 16cf140..0d4bef4 100644
--- a/l4/Makefile
+++ b/l4/Makefile
@@ -393,7 +393,6 @@ define switch_ram_base_func
 	echo # File semi-automatically generated by 'make switch_ram_base'  $(OBJ_BASE)/Makeconf.ram_base; \
 	echo RAM_BASE := $(1)  $(OBJ_BASE)/Makeconf.ram_base; \
 	PWD=$(PWD)/pkg/sigma0/server/src $(MAKE) RAM_BASE=$(1) -C pkg/sigma0/server/src;  \
-	PWD=$(PWD)/pkg/moe/server/src$(MAKE) RAM_BASE=$(1) -C pkg/moe/server/src; \
 	echo RAM_BASE_SWITCH_OK := yes $(OBJ_BASE)/Makeconf.ram_base
 endef
 
--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Genode Fiasco.OC kernel changes

2013-07-18 Thread Sebastian Sumpf
Hi Daniel,

On 07/17/2013 11:49 PM, Daniel Waddington wrote:

 On 07/17/2013 01:05 PM, Sebastian Sumpf wrote:
 Hi Daniel,

 On 07/17/2013 09:41 PM, Daniel Waddington wrote:

 On 07/17/2013 12:13 PM, Sebastian Sumpf wrote:
 Hi,
 Can someone point me to the relevant Fiasco.OC kernel changes made by
 Genode that might prevent the following error...

 Could not assign parent interface to new PD
 unknown exception?


 This is from vanilla r56 of Fiasco.OC.  I'd like to see if I can get r56
 running on Genode (to help me fix other issues).


 I am already at it, I can push a preliminary branch of r56 tomorrow, if
 you like, so you can check if the error still occurs.

 Yes, this would be a fantastic help.

 Guess I'm quicker than expected .-) The relevant branch is:

 https://github.com/ssumpf/genode/tree/r56

 Make sure to run 'make clean' and 'make prepare' in 'base-foc'. If the
 error still occurs (I guess it's on x86_64), I would appreciate any help
 on how to reproduce it.

 Thanks for the code. I can confirm that it builds and runs fine (x86_64).
 
 Unfortunately I still have my problem, but now I think it may have 
 something to do with the kernel's internal Ram_quota for the process. 
 Do someone at Genode know how this quota gets established?
 

Have a look at 'base-foc/contrib/kernel/fiasco/src/kern/config.cpp'.
There is an enum value called 'kernel_mem_max' as well as constant
called 'kernel_mem_per_cent'. Both should have an influence on how much
memory the in kernel buddy allocator can use.

Greetings,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Genode Fiasco.OC kernel changes

2013-07-17 Thread Sebastian Sumpf
Hi Daniel,

On 07/17/2013 06:41 PM, Daniel Waddington wrote:
 Hi,
 Can someone point me to the relevant Fiasco.OC kernel changes made by 
 Genode that might prevent the following error...
 
 Could not assign parent interface to new PD
 unknown exception?
 
 
 This is from vanilla r56 of Fiasco.OC.  I'd like to see if I can get r56 
 running on Genode (to help me fix other issues).
 

I am already at it, I can push a preliminary branch of r56 tomorrow, if
you like, so you can check if the error still occurs.

Regards,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Genode Fiasco.OC kernel changes

2013-07-17 Thread Sebastian Sumpf
Hi Daniel,

On 07/17/2013 09:41 PM, Daniel Waddington wrote:

 On 07/17/2013 12:13 PM, Sebastian Sumpf wrote:
 Hi,
 Can someone point me to the relevant Fiasco.OC kernel changes made by
 Genode that might prevent the following error...

 Could not assign parent interface to new PD
 unknown exception?


 This is from vanilla r56 of Fiasco.OC.  I'd like to see if I can get r56
 running on Genode (to help me fix other issues).


 I am already at it, I can push a preliminary branch of r56 tomorrow, if
 you like, so you can check if the error still occurs.

 Yes, this would be a fantastic help.

Guess I'm quicker than expected .-) The relevant branch is:

https://github.com/ssumpf/genode/tree/r56

Make sure to run 'make clean' and 'make prepare' in 'base-foc'. If the
error still occurs (I guess it's on x86_64), I would appreciate any help
on how to reproduce it.

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: need help with hello tutorial

2013-06-13 Thread Sebastian Sumpf
Hi,

On 06/13/2013 11:30 AM, Archie Nidhi wrote:
 There is a config folder with config in build when i moved that
  to build/bin then it still gives the same message

You can try the following:

1. Add the hello_tutorial to your build/etc/build.conf:

REPOSITORIES += $(GENODE_DIR)/hello_tutorial

2. Go to your build directory and enter:

make run/hello

This should start the hello example on Linux.

3. Copy the file 'config' from 'build/var/run/hello' to '/build/bin'

4. Go the '/build/bin' directory

5. Enter
./core

which should also start the example. Please inspect the 'config' file,
to see how the system is configured for the hello example.

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: ahci_drv and part_blk on real hard disk

2013-05-21 Thread Sebastian Sumpf
Hi,

On 05/20/2013 04:01 AM, yuqing wang wrote:

 Thank you for your explanation.
 I omit part_blk and get the partition table of my hard disk.
 But the L4linux can not use the hard disk.I mean use fdisk command in
 l4linux just find no device,so I can not mount any partition of my hard
 disk.
 At first I think  I should change some config of l4linux,but I am not
 sure whether it is the point.

I guess the issue is, that the device nodes for the partitions must be
created first. Check for the major number of '/dev/sda' (in L4Linux),
which should give you something like this:

brw-r--r-- 1 root root 254, 0 Jul 24  2012 sda

Here the major number of 'sda' is 254. For each partition you now need
to create a device node with a different minor number. Minor numbers 1
through 4 symbolize primary partitions, while number 5 to X mean logical
partitions.

Example creating a device node for the first primary partition:

mknod /dev/sda1 b 254 1

You should now be able to mount sda1.

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: ahci_drv and part_blk on real hard disk

2013-05-15 Thread Sebastian Sumpf
Hi,

On 05/15/2013 10:58 AM, yuqing wang wrote:
 Hi
 i tried ahci_drv.run ,it worked well
 when i tried to use ahci_drv and part_blk making l4linux access to hard
 disk, it failed.
 
 [init - l4linux] thread=18000 cpu=1
 [init - l4linux] WARNING: Unknown wrmsr: 008b at 6161b1
 [init - part_blk] Partition 1: LBA 2048 (204800 blocks) type: 7
 [init - part_blk] Partition 2: LBA 206848 (209730572 blocks) type: 7
 [init - part_blk] Partition 3: LBA 209938430 (1006979074 blocks) type: f
 [init - part_blk] Partition 4: LBA 1934756096 (18764976 blocks) type: 7
 
 my hard disk /dev/sda
 
 Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
 255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0xb673c29c
 
Device Boot  Start End  Blocks   Id  System
 /dev/sda1   *2048  206847  1024007  HPFS/NTFS/exFAT
 /dev/sda2  206848   209937419   1048652867  HPFS/NTFS/exFAT
 /dev/sda3   209938430  1216917503   503489537f  W95 Ext'd (LBA)
 /dev/sda4  1934756096  1953521071 93824887  HPFS/NTFS/exFAT
 /dev/sda5   209938432   517138431   153607  HPFS/NTFS/exFAT
 /dev/sda6   517140480   824340479   153607  HPFS/NTFS/exFAT
 /dev/sda7   824342528  101965209597654784   83  Linux
 /dev/sda8  1019654144  1021605887  975872   82  Linux swap / Solaris
 /dev/sda9  1021607936  121691750397654784   83  Linux
 
 the part_blk server get the parition of my hard disk (though not
 all),but the l4liunx can not get the partition table 

If you want to see the partition table in L4Linux, please omit part_blk
and let L4Linux access the AHCI driver directly. What part_blk does is,
it exposes a 'single' partition as a block device to L4Linux and on a
partition there are no other partitions. It seems that is not what you
want to achieve.

Regards,

Sebastian


-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: part_blk on fiasco.oc

2013-04-30 Thread Sebastian Sumpf
Hi,

On 04/27/2013 10:51 AM, yuqing wang wrote:
 Hi,
 I used the foc_x86_32 platform to try part_blk run script ,there was a
 error.
 
 [init - atapi_drv] 5 and below: yes enabled: yes
 [init - atapi_drv] PRD base at 002f9000 (physical) at 2000 (virtual)
 [init - atapi_drv] Device initialized! Enabling interrupts ...
 Error: Test execution timed out
 make: *** [run/part_blk] Error 254
 
 I try to find where is wrong and I get it 

You don't get an interrupt. Glancing at the run script, I see that the
ACPI driver is missing. On hardware and even Qemu it is usually required
to find out the correct GSI (global system interrupt) values. It then
overwrites the ones in the PCI config space, that are legacy PIC
interrupt numbers. Also the driver parses the MADT in order to retrieve
any interrupt overrides. Since you also seem to use the AHCI run script,
you can configure the ACPI server and the ATAPI driver in the same way
as it's done there.

Regards,

Sebastian

--
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with 2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: static linking libc.

2013-04-02 Thread Sebastian Sumpf
Hi Daniel,

On 03/28/2013 08:14 AM, Norman Feske wrote:
 
 I have a problem with all my threads in a multi-threaded program
 dead-locking on some (cancelable) lock in ld.lib.so.  At this point it
 
 I wonder if this problem may be related to an issue that was recently fixed:
 
 
 https://github.com/genodelabs/genode/commit/764a3656a1385185e635bb4fdac8e8fca857ed74
 
 The symptom was a deadlock in the cxx library that occurred when an
 exception was thrown during a memory allocation. See the comment in the
 commit for more details.

If this does not solve the problem, I would be interested in a back
trace of one of those threads (on x86/Fiasco use 'bt' in JDB and feed
the output to 'tool/backtrace' located in the Fiasco source tree).

Thanks,

Sebastian




--
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Update base-foc to use rev. 47

2013-02-20 Thread Sebastian Sumpf
Hello Dmitry,

On 02/20/2013 04:46 PM, Dmitry Shubin wrote:
 
 I've updated Makefile and a patchset to use the latest snapshot of 
 Fiasco.OC. So far I've tested only foc_x86_32 and foc_x86_64 under qemu, 
 but we should be able to test foc_panda and foc_imx53 builds as well soon.
 
 The patch is available here on foc-r47 branch:
 git://github.com/Ksys-labs/genode.git

Unfortunately we already forked Fiasco.OC, making it easier to maintain
our patch set. I upgraded the fork already to r47.

The branch using this forked repository is:

https://github.com/ssumpf/genode/tree/arndale

Simply call 'make prepare' in base-foc

The fork can be found under:

https://github.com/ssumpf/foc

All this stuff will eventually hit Genode's master branch.

Greetings  thanks for your efforts,

Sebastian

P.S. As I was told on l4-hackers that r47 seems to improve SMP
performance and supports the L2 cache on PandaBoard/OMAP4.

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: [genode] Multiple sessions from usb_drv

2013-01-11 Thread Sebastian Sumpf
Hello Jaeyong,

On 01/11/2013 06:23 AM, jaeyong yoo wrote:
 
 Is it possible to have multiple sessions from usb_drv?
 
 If it is, how does usb_drv multiplex the receiving packets from NIC
 device to the corresponding session?
 

The usb_drv is almost ready to support multiple NICs. Currently a NIC
device can be associated to a NIC session. What the driver is lacking,
is configuration support in Genode's configuration file. There one would
want to specify which client will receive which NIC session when
connecting to the USB server, but that could be implemented pretty
straight forward. Multiplexing is not necessary, since the NIC device is
associated to the session. When a device interrupt occurs, the device
will report it to the session and the session in turn to the client.

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: MSI support in Genode

2013-01-09 Thread Sebastian Sumpf
Hello Jilong,

On 01/09/2013 01:30 AM, Jilong Kuang wrote:

 Could any briefly point out how to use MSI in Genode for device driver
 (e.g., e1000 card)? The existing IRQ API seems to only handle normal
 interrupt case. Is there any sample code I can refer to?
 

Unfortunately there is no MSI support in Genode's IRQ session as of now,
therefore no sample code also. Currently we have shared IRQ support for
Fiasco.OC, Nova, and OKl4. Would that solve your issue or do you have
other needs that strictly require MSI support?

Additionally support for MSIs is on our road map and may evolve through
the course of this year. But that heavily depends on our working
schedule, which happened to change quite often in the past. So I cannot
tell when, but MSI support will be implemented eventually.

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612 
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: about platform_execute in usb_drv

2013-01-08 Thread Sebastian Sumpf
Hello Jaeyong,

On 01/08/2013 03:26 AM, jaeyong yoo wrote:
 Hello,
 
 Could you explain about the intend behind platform_execute in usb_drv?
 I see it is similar to executing a function but it uses stack allocated
 by dde_kit_simple_malloc, and I don't understand why.

This function is used to switch the stack and execute a given function.
Since stack switching has to be performed in assembly, the function must
be implemented for each platform (e.g. ARM, x86). In the great picture
this is part of a very simple user-threading implementation. Each
pseudo thread needs a stack to need lose its call trace, such a thread
is scheduled using setjmp/longjmp calls (see:
dde_linux/src/drivers/usb/routine.h).


Regards,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS
and more. Get SQL Server skills now (including 2012) with LearnDevNow -
200+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only - learn more at:
http://p.sf.net/sfu/learnmore_122512
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: How can you solve Packet Overrun problem in the part_blk Example.

2012-11-12 Thread Sebastian Sumpf
Hi Eun Seok, Kim,

On 11/12/2012 01:00 AM, 김은석 wrote:

 I have an issue in the part_blk Example code.
 I have tested the program on the pandaboard with a little modifcation.
 I have Packet Overrun problem when i apply request size of 128kbytes.
 Could you please advice me how can i solve this issue.
 Following Example code is the modified version of part_blk Example.


A quick inspection revealed that the default backing-store size of the
'Block::Connection' is set to 128KB, which is pretty small (see:
os/include/block_session/connection.h). Thus allocations of 128KB might
even fail. The 'Block::Connection' takes the 'tx_buf_size' as second
argument. To set the backing-store to one MB, you would have to
initialize the connection like this:

'static Block::Connection _blk(_block_alloc, 1024 * 1024);'

Regards,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_nov
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Issue in lwip

2012-10-25 Thread Sebastian Sumpf
Hello Ivan,

On 10/25/2012 10:14 AM, Ivan Loskutov wrote:
 Hello,
 
 I have an issue in lwip again. I ported the xmlrpc++ library to
 genode but simple test is failed.  I have messages in log:
 
 no RM attachment (READ pf_addr=28 pf_ip=1183823 from 2df000)
 invalid signal-context capability
 virtual void Genode::Pager_activation_base::entry(): Could not resolve
 pf=28 ip=1183823
 
 I tried to trace the error and found then the issue occurred in select
 function in lwip. Xmlrpc++ server does this call and sometime
 occurred this error. The error occurred in select function and control
 doesn't return to server code. The same code on host worked without
 issues. Sample code is in
 commit 
 https://github.com/Ksys-labs/genode/commit/f567619f5f0a50e7eed74e9565ddae1320a016a0
 I ran the server in qemu and client from xmlrpc++ on my host.
 Any ideas?

I've tried your test and could reproduce the error, it seems not to
occur in LWIP but rather in 'stdcxx.lib.so' (I attached the backtrace,
you can observe that eax is 0x28). The last XmlRpc functions called are:
'XmlRpc::XmlRpcServerConnection::parseRequest' and the
'XmlRpc::XmlRpcValue::operator='. Maybe the provided data is corrupt.
Unfortunately I cannot investigate this further right now.

Greetings,

Sebastian



-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



#0  std::basic_stringchar, std::char_traitschar, std::allocatorchar 
::basic_string (this=0x265b4, __str=...) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/basic_string.tcc:175
#1  0x011aea1c in pair (this=0x265b4) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_pair.h:87
#2  construct (__val=..., __p=0x265b4, this=optimized out) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/ext/new_allocator.h:108
#3  _M_create_node (__x=..., this=0x26560) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:381
#4  _M_clone_node (__x=0x18, this=0x26560) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:427
#5  std::_Rb_treestd::string, std::pairstd::string const, 
XmlRpc::XmlRpcValue, std::_Select1ststd::pairstd::string const, 
XmlRpc::XmlRpcValue , std::lessstd::string, 
std::allocatorstd::pairstd::string const, XmlRpc::XmlRpcValue  ::_M_copy 
(this=0x26560, __x=0x18, __p=0x26564) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:1026
#6  0x011aec96 in _Rb_tree (__x=..., this=0x26560) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_tree.h:627
#7  map (__x=..., this=0x26560) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_map.h:173
#8  XmlRpc::XmlRpcValue::operator= (this=0x26358, rhs=...) at 
/home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcValue.cpp:133
#9  0x011aed6e in XmlRpcValue (rhs=..., this=0x26358) at 
/home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcValue.h:70
#10 _ConstructXmlRpc::XmlRpcValue, XmlRpc::XmlRpcValue (__value=..., 
__p=0x26358) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_construct.h:84
#11 __uninit_copy__gnu_cxx::__normal_iteratorXmlRpc::XmlRpcValue const*, 
std::vectorXmlRpc::XmlRpcValue , XmlRpc::XmlRpcValue* (__result=0x26340, 
__last=..., __first=...)
at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_uninitialized.h:77
#12 uninitialized_copy__gnu_cxx::__normal_iteratorXmlRpc::XmlRpcValue const*, 
std::vectorXmlRpc::XmlRpcValue , XmlRpc::XmlRpcValue* (__result=0x26340, 
__last=..., __first=...)
at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_uninitialized.h:119
#13 __uninitialized_copy_a__gnu_cxx::__normal_iteratorXmlRpc::XmlRpcValue 
const*, std::vectorXmlRpc::XmlRpcValue , XmlRpc::XmlRpcValue*, 
XmlRpc::XmlRpcValue (__result=0x26340, __last=..., __first=...)
at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_uninitialized.h:259
#14 vector (__x=..., this=0x153c0) at 
/home/cbass/backup/src/genode/genode.git/libports/include/stdcxx/bits/stl_vector.h:280
#15 XmlRpc::XmlRpcValue::operator= (this=0x153ac, rhs=...) at 
/home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcValue.cpp:132
#16 0x011a86c9 in XmlRpc::XmlRpcServerConnection::parseRequest (this=0x172fc, 
params=...) at 
/home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServerConnection.cpp:242
#17 0x011ab4ea in XmlRpc::XmlRpcServerConnection::executeRequest (this=0x172fc) 
at 
/home/cbass/backup/src/genode/genode.git/libports/contrib/xmlrpc++0.7/src/XmlRpcServerConnection.cpp:211
#18 0x011a83b4 in XmlRpc::XmlRpcServerConnection::writeResponse (this=0x172fc) 
at 
/home/cbass/backup/src/genode

Re: Storage device considerations

2012-09-19 Thread Sebastian Sumpf
Hi Markus,

On 09/19/2012 11:16 AM, Markus Partheymueller wrote:

 starting to discover the possibilities of using storage devices under
 genode, a few questions arised:
 
 (1) AHCI is declared non-working on Fiasco.OC and NOVA. Is this
 planned to be resolved in the near future?

AHCI should work on Fiasco.OC and Nova by now, on bare metal one has to
use it in the same way as the USB driver by starting the 'acpi_drv'
server. Beware the driver is still in a very early stage and might break
things.

 (2) USB Storage is supporting only one device. Are there plans to extend this?

Not in the immediate future.

Greetings,

Sebastian

-- 
Sebastian Sumpf
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Illegal session request to service CPU

2012-08-17 Thread Sebastian Sumpf
Hi Markus,

On 08/17/2012 10:40 AM, Markus Partheymueller wrote:

 The parent-provides entry and the service name=CPU in provides
 were not present in my last setup, but didn't change anything.
 
 Am I missing something or is there a problem with the most recent
 changes regarding the CPU session or NOVA-specific code?

The attached patch should fix this issue, I will check this in when the
other ACPI problems are solved.

Sebastian

diff --git a/os/src/drivers/acpi/main.cc b/os/src/drivers/acpi/main.cc
index 4b9ccb2..5737392 100644
--- a/os/src/drivers/acpi/main.cc
+++ b/os/src/drivers/acpi/main.cc
@@ -129,7 +129,7 @@ class Pci_policy : public Genode::Slave_policy, public 
Pci::Provider
 
char const **_permitted_services() const
{
-   static char const *permitted_services[] = { CAP, 
RM, LOG, IO_PORT, 0 };
+   static char const *permitted_services[] = { CPU, 
CAP, RM, LOG, IO_PORT, 0 };
return permitted_services;
};
 
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: USB HID driver fails to recognize input devices

2012-07-18 Thread Sebastian Sumpf
Hi Markus,

On 07/13/2012 01:07 PM, Sebastian Sumpf wrote
 I will test this however, when I get my hands on a hardware box. Until
 then you're more than welcome to find out what is going on.

I've tested the USB driver on x86 as promised and fixed some issues that
appeared on real hardware. For a short description you can check
(https://github.com/genodelabs/genode/issues/282). The most important
issue was the lack of support for more than one UHCI controller.
Interrupts are now also working for that controller.

Nevertheless there are still limitations for Nova. Because of the large
number of controllers (on my box seven) the driver might discover, the
PCI legacy interrupts may exhaust pretty quickly, what in return means
that it is likely that no other driver that depends on PCI-IRQs might
get access to them. The reason for that is that Genode does currently
neither support shared interrupts nor message-signaled interrupts in
Nova's base platform. Also there is no IOMMU support, yet, so one has to
disable it when using the driver.

@Udo: Thanks for your extensive explanations of the IOMMU interface on Nova.

You can find the changes in my Genode repository
(git://github.com/ssumpf/genode.git) under the 'issue282' branch.

Bye,
Sebastian

-- 
Sebastian Sumpf Genode Labs http://www.genode-labs.com ·
http://genode.org Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 ·
Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: OMAP4 framebuffer

2012-07-13 Thread Sebastian Sumpf
Hi Ivan,

On 07/13/2012 08:11 AM, Ivan Loskutov wrote:
 Hello.

 I try to extend OMAP4 frame-buffer driver for using with LCD. Your
 HDMI example does not work. I try to read OMAP DSS registers and
 receive strange values, for example: value DSS_REVISION is 0x0214,
 other DSS and DISPC registers has similar values. What version u-boot
 do you use on pandaboard? Maybe part of the initialization is
 performed in u-boot.

Yes that could be the case. We use the Linaro-version of u-boot
(git://git.linaro.org/boot/u-boot-linaro-stable.git) on the
'Linaro-u-boot-2011.12' branch. The behavior you describe though, kind
of looks like as if the I/O memory base of the controller might be
wrong. What version of the PandaBoard do you use? We only tested the
thing on ES.

Sebastian

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: USB HID driver fails to recognize input devices

2012-07-13 Thread Sebastian Sumpf
On 07/12/2012 03:21 PM, Markus Partheymueller wrote:
 DEBUG_IRQ revealed no real news for me, except for the fact that IRQ
 10 was discovered, but apparently no interrupt came in, handle() was
 not called once. So I added acpi_drv to my setup, resulting in a
 different log. As you suggested, I attached the new log as well as my
 configuration file. Another interesting fact is that, when the iommu
 flag of the hypervisor is removed, it looks quite different already. A
 log file of this behavior is also attached. Regards Markus
Okay the ACPI driver seems definitely necessary here. Since the device
IRQs (10/11) are overwritten (to GSI 16/18) by the driver. So far so
good, what is really weird is that the drivers seems to read strange
values in the IOMMU case.

@Alexander Boettcher: Is there anything to consider regarding I/O memory
when using Nova with enabled IOMMU?

The second example (no IOMMU) looks actually better. The strange thing
here is that the available RAM quota does not seems to suffice. Are you
on a 64Bit machine? For a quick fix you could try to increase the memory
quota of some servers until you don't get the 'Quota exceeded' message
any more. On the other hand, if this is a 64Bit machine the GSI values
produced by the ACPI driver might be wrong, since it only parses the
DSDT, on 64Bit one would have to use the XDSDT table. To make long
things short, as long as you don't get interrupts from the UHCI/EHCI
controllers the driver will not work. The thing to find out is, why we
don't get interrupts on Nova. Unfortunately I can't really help you
right now since I am pretty sick. I will test this however, when I get
my hands on a hardware box. Until then you're more than welcome to find
out what is going on.

Greetings,

Sebastian

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: OMAP4 framebuffer

2012-07-13 Thread Sebastian Sumpf
On 07/13/2012 01:07 PM, Ivan Loskutov wrote:
 Thanks. With your u-boot HDMI is work and DSS registers read correct.

Nice!

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: USB HID driver fails to recognize input devices

2012-07-13 Thread Sebastian Sumpf
On 07/13/2012 03:24 PM, Alexander Boettcher wrote:
  @Alexander Boettcher: Is there anything to consider regarding I/O
  memory when using Nova with enabled IOMMU?

 A quick lock into the specification of the NOVA kernel shows, that
 assign_gsi returns the msi vector to be programmed (if the device is
 used in msi mode, is it?).

Big NO here!

 In base-nova/src/core/irq_session_component.cc however
 - first the return value of the syscall operation is ignored
 - second the msi values returned by the kernel are ignored.

 The assign_pci system call is completly not used in Genode currently,
 however required to work with IOMMU support enabled ...

 @Sebastian: we have to revisit this part asap., maybe next week together.

Okay, lets do that.

@Markus: You can come along as well, since our offices are not that far
apart .-)

Sebastian


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Building Genode for Gumstix Overo platform

2012-02-17 Thread Sebastian Sumpf
Hi,

On 02/16/2012 06:40 PM, Michael Grunditz wrote:
 On 02/16/2012 06:08 PM, Norman Feske wrote:
 Hello again,

 [init - test-libc] C++ runtime: int
 [init - test-libc] void* abort(): abort called


 I guess I get into c++ runtime, but what does int mean in this context ?
 When I start test-libc in linux/genode I get : [init - test-libc]
 Starting ldso ... as the first output.
 it looks like the early exception-handling check in our startup code
 fails for you. Please see the comment at line 230 in '_main.cc':


 https://github.com/genodelabs/genode/blob/master/base/src/platform/_main.cc

 It is strange though, that this check does not trigger for normal
 statically-linked programs but only for 'ld.lib.so'. Maybe there is a
 subtle difference between the normal linker script and the one used for
 'ld.lib.so'?
 I have not changed them. The only system level thing I changed was the
 core memory address. The system memory available starts at *0x9000
 so core is above that. Could that mean that there is a unresolved memory
 conflict* ?

 And yes static programs works.

This behavior could be caused by a couple of  issues. Can you check if '
dl_unwind_find_exid' does return something meaningful in
'os/src/lib/ldso/arm/platform.c'?  This function is used by the
libgcc_eh code in the dynamic case only. Second, can you send me the
output of 'objdump -R bin/libc.lib.so' and the same for 'bin/test-libc'.
There could be some unsupported relocation types. What EABI version is
this platform using?

Greetings,

Sebastian

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: New version of LDSO

2011-10-18 Thread Sebastian Sumpf
Hi Sam,

the output looks good and the test succeeded .  The test mostly targets
C++'s exception support, for example the Exception during RPC tries to
open a Rom_connection to a file which is not available, therefore an
exception is thrown, when it reaches the test program everything is
fine. When something goes wrong one usually gets some sort of 'abort'
output. By the way, if you start the test with 'make run/ldso' you
should see the 'Test succeeded' output at the end.

Greetings,
Sebastian

On 10/17/2011 05:59 PM, Sam Kerr wrote:
 Hi,

 I have been working on porting some of my dynamic loader work to the
 newer version of Genode. I thought I would start by compiling the
 test-ldso program and running it. When I do, I get the following output,
 but I don't really understand why the errors are there. Can anyone offer
 guidance?

 [init - test-ldso] Starting ldso ...
 [init - test-ldso] Starting application ... environ: 83424
 [init - test-ldso] 
 [init - test-ldso] Static Geekings!
 [init - test-ldso] 
 [init - test-ldso] Test read
 [init - test-ldso] no plugin found for read(0)
 [init - test-ldso] Static object in funcion ... a:  b: 
 c:  6: 0666
 [init - test-ldso] Shared library function call ...good
 [init - test-ldso] Ctor in shared lib ... a:  b:  c:
  6: 0666
 [init - test-ldso] Exception in shared lib ... good (library)
 [init - test-ldso] Cross library exception ... good (cross library)
 [init - test-ldso] Exception during RPC: Could not open file
 __not_found__
 [init - test-ldso] good
 [init - test-ldso] Exception in dynamic binary ... good (binary)
 [init - test-ldso] Exception inter-shared library ... good (inter)
 [init - test-ldso] Exception from LDSO with explicit catch ... good
 [init - test-ldso] Libc test: abs(-10): 10
 [init - test-ldso] 
 [init - test-ldso] 
 [init] virtual void Genode::Child_policy::exit(int): child exited with
 exit value 0


 -Sam Kerr


 --
 All the data continuously generated in your IT infrastructure contains a
 definitive record of customers, application performance, security
 threats, fraudulent activity and more. Splunk takes this data and makes
 sense of it. Business sense. IT sense. Common sense.
 http://p.sf.net/sfu/splunk-d2d-oct
 ___
 Genode-main mailing list
 Genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main



--
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: LDSO Question

2011-03-19 Thread Sebastian Sumpf
Hi Sam,

On 03/18/2011 09:14 PM, Sam Kerr wrote:
 Hi Sebastian,

 Thanks for the suggestions. You pointing out several mistakes will be help me 
 out in the future.

 However, I am not able to build the LDSO application using 'make run/ldso'. 
 Instead, it says :

   Error: No run script for ldso
   make: *** [run/ldso] Error 255

 Any suggestions?

That's strange. Please check if the file Genode source
directory/os/run/ldso.run is present, if not please update your Genode
version to the current SVN head. If it is still not there let me know.

Greetings,

Sebastian

--
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Don't know where to extract pre-compiled tool chain(genode-10.08.tar.bz2)

2010-09-17 Thread Sebastian Sumpf
 Hi,

please apply the 'syscall_pic.patch' located under 'base-okl4/patches/'
to the OKL4 kernel and have a look at the 'README' file for an explanation.

Greetings,
Sebastian

On 09/16/2010 06:51 PM, Janith Widarshana wrote:
 Thanx a lot Christian,
 I could get rid of that problem and now i've got following errors when
 run make file on build directory.

 genode-okl4-x86/include/l4/arch/syscalls.h:277: error: PIC register
 ‘ebx’ clobbered in ‘asm’
 make[2]: *** [ipc.o] Error 1
 make[1]: *** [ipc.lib] Error 2
 make: *** [gen_deps_and_build_targets] Error 2

 Could you please explain me how to fixed it?

 Regards
 Janith Widarshana.

 On Thu, Sep 16, 2010 at 6:35 PM, Christian Helmuth
 christian.helm...@genode-labs.com
 mailto:christian.helm...@genode-labs.com wrote:

 Hello,

 On Thu, Sep 16, 2010 at 11:28:03AM +0530, Janith Widarshana wrote:
  I'm trying Okl4 since last two days with Ubuntu 10.04 on x86
 architecturea

 Great to hear that - I'm running Luci Lynx 32-bit too.

  I don't know where to extract pre-compiled  tool
  chain(genode-10.08.tar.bz2).  http://genode.org/download/tool-chain
  said that it has to extract /usr/local/genode-gcc.But i can't fined
  it /usr/local/.  Please someone suggest a solution for me to go
  further.

 That confuses me a bit, as

  
 http://sourceforge.net/projects/genode/files/genode/10.08/genode-10.08.tar.bz2

 is the Genode source code archive. It contains the folder
 'genode-10.08'. You may place extract the archive where you want. The
 current binary tool chain archive is

  
 http://sourceforge.net/projects/genode/files/genode-toolchain/9.08/genode-toolchain-9.08.tar.bz2

 To extract the archive please run the following

 ! sudo tar -xjPf genode-toolchain-9.08.tar.bz2

 from the command line in a terminal emulator. Note, the 'P' option is
 significant to keep leading '/'.

 Regards
 --
 Christian Helmuth
 Genode Labs

 http://www.genode-labs.com/ · http://genode.org/

 Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
 Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

 
 --
 Start uncovering the many advantages of virtual appliances
 and start using them to simplify application deployment and
 accelerate your shift to cloud computing.
 http://p.sf.net/sfu/novell-sfdev2dev
 ___
 Genode-main mailing list
 Genode-main@lists.sourceforge.net
 mailto:Genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main



 --
 Start uncovering the many advantages of virtual appliances
 and start using them to simplify application deployment and
 accelerate your shift to cloud computing.
 http://p.sf.net/sfu/novell-sfdev2dev


 ___
 Genode-main mailing list
 Genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main


--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: how to gdb genode apps

2010-09-10 Thread Sebastian Sumpf
 Hello again,

here is a small HOWTO for debugging Genode apps on Linux:

* The first thing to do is to interrupt Genode at a certain point as you
cannot start core with gdb. So, if you want to debug an application you
have to call 'wait_for_continue' from within your code.
Somewhere in your code write something like:
   
extern C void wait_for_continue();

void some_func_in_your_program()
   {
   wait_for_continue();
   }

This will cause your program to stall in the function above.

* Compile your app
* Start './core' from the command line
* As mentioned before your program will stop in the 'wait_for_continue'
function
* Now find out the process id of your program, ('ps -efL | grep Genode')
* Start gdb with 'gdb -p Process ID from ps' , this will attach gdb to
the process
* Switch to the Genode output console (where you started core) and hit
'enter', this will cause your program to leave the 'wait_for_continue'
function
* Switch back to GDB, you now may step and set breakpoints (note: Does
not work with all gdb versions), inspect variables, ... .

I hope this helps,

Sebastian

On 09/10/2010 05:34 PM, stephane frenot wrote:
 Hello,
 I have a problem while debugging genode with gdb.

 When starting gdb ./core it freeezes on 3 LWP.

 Is there a specific gdb configuration in order to reach sub services ?

 /stephane
 -- 
 http://perso.citi.insa-lyon.fr/sfrenot
 work here : http://tinyurl.com/2ts4xf
 sleep here : http://tinyurl.com/33p2gt
 play here : http://tinyurl.com/3yarjz
 ---
 Stephane Frenot
 Université de Lyon, INRIA
 INSA-Lyon, CITI, F-69621, France


 --
 Automate Storage Tiering Simply
 Optimize IT performance and efficiency through flexible, powerful, 
 automated storage tiering capabilities. View this brief to learn how
 you can reduce costs and improve performance. 
 http://p.sf.net/sfu/dell-sfdev2dev


 ___
 Genode-main mailing list
 Genode-main@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/genode-main


--
Automate Storage Tiering Simply
Optimize IT performance and efficiency through flexible, powerful, 
automated storage tiering capabilities. View this brief to learn how
you can reduce costs and improve performance. 
http://p.sf.net/sfu/dell-sfdev2dev
___
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main