Rohit Kumar | 11 Jan 18:16 2011

[haiku-kernel-devel] About Contributing to kernel


I am an undergraduate student, in IT-BHU varanasi. I want to contribute to the Haiku kernel development.
i have done some work regarding kernel development. I am completely new to this type of open source project. 
I have good experience of coding with c++ and c.
Please help regarding how, and from where i should start, stepwise. 

Rohit Kumar
B.Tech. 3rd year
Computer Science & Engineering
Institute of Technology,

Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
Open-beos-kernel-devel mailing list
Brecht Machiels | 1 Dec 22:45 2010

[haiku-kernel-devel] driver unloading


I'm having a go at writing an ACPI driver for changing the brightness of my laptop screen from within Haiku.
To get started, I have copied the source code for the battery driver and threw most of the function contents
out. After copying the driver to /boot/home/add-ons/kernel/drivers/power and rebooting, I can get
some output from 'cat /dev/power/acpi_backlight'. Rene told me the driver should unload after that, and
the syslog shows this indeed:
KERN: acpi_backlight: acpi_backlight_init_device
KERN: acpi_backlight: acpi_backlight_open
KERN: acpi_backlight: acpi_backlight_read
Last message repeated 1 time
KERN: acpi_backlight: acpi_backlight_close
KERN: acpi_backlight: acpi_backlight_free
KERN: acpi_backlight: acpi_backlight_uninit_device

However, after changing the driver, recompiling and copying it again, the changes are not visible on a new
cat. Listimage shows it's still loaded:

$ listimage 1 | grep backlight
  349         /boot/system/add-ons/kernel/drivers/power/acpi_backlight 0x807f4000 0x807f6000    0          0

For the atheros driver, issuing ifconfig down, makes the driver print to the syslog:
KERN: [net/atheroswifi/0] compat_free()

And also here, listimage still shows it.

So, what is broken? Or more likely, what am I doing wrong? :)

I just discovered this message:
I'll try placing the driver under /boot/system...

Kind regards,

Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
Ingo Weinhold | 17 Jun 14:51 2010

IOCache vs. block cache


I've been meditating a bit on how the block cache is favored over the file 
cache ATM. The problem is that the file cache smoothly integrates with the 
page allocation backend -- i.e. when there are no/too few free pages 
available, cached pages are recycled -- while the block cache grows 
unboundedly until a low resource limit is hit (pages, memory, or address 
space). The pages limit cannot be reached as long as there still are cached 
pages, so, unless memory or address space limit are hit first, as soon as 
all pages are used (actually or for caching) the block cache starts 
draining the file caches. I.e. very old cached blocks are favored over 
increasingly newer cached file content.

I think eventually the block cache should be rewritten to be VMCache based 
with on-demand mapping of hot blocks, but for the time being a simpler 
solution would be possible: The IOCache could be extended to make it 
possible to lay it under the IOSchedulerSimple. This would give us a 
VMCache based cache close to the device. The block cache could then work 
with a very small, limited (!) set of unused blocks.

The advantages are:

* The block cache would no longer exert any memory pressure.

* The real caching happens in the IOCache, which integrates smoothly with 
the page allocation backend. The file cache is no longer at a disadvantage.

* There won't be anymore double-caching when mounting image files (file 
cache for the file, block cache for the FS on top of it).

* Since the block cache is rather dumb ATM, there's some chance of serious 
performance improvements, particulary when assuming that FSs store related 
data close to each other. The block cache reads individual blocks, the 
IOCache always reads whole cache lines. So we'd automatically get 

The only disadvantage I see is the double caching for file content: The 
IOCache caches at device level, the file caches at file level. On the 
bright side, if the the file content is actually read again later, the 
cached pages in the IOCache will eventually be recycled, while the file 
cache pages will prevail. Writes to the file will refresh the IOCache pages 
as well, though. OTOH less aggressive caching in the file cache (e.g. 
detect contiguous reads/writes and drop older pages early) would improve 
the situation -- incorrectly predicted future access behavior would be 
rather harmless.

I haven't looked into the USB mass storage situation yet. There might be 
additional advantages or disadvantages in this department.

CU, Ingo

ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win:
Rohit Vaidya | 26 Mar 14:33 2010

IPv6 protocol stack development

I wanted to contribute and work for the IPv6 protocol stack development
for Haiku.
I am in search of mentors who could give me pointers on how to go about
it and areas where I should be proficient in working for the same  
 Rohit Vaidya
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
Open-beos-kernel-devel mailing list
Nitish Sharma | 24 Mar 21:36 2010

GSoc 2010: File system cache or Kernel as userland process

Hi all !
I am a Computer science masters student and highly interested in making contribution to Haiku operating system. I have good experience in C and a brief stint with C++ and Java. I have experience in GNU/Linux kernel development and right now working on Android kernel development. 
While browsing through Gsoc 2010 Haiku ideas and open tickets, these two tickets interested me the most: and . I believe it would be a good experience to work on a non-Linux kernel and Haiku is the perfect platform (& best maintained) for that.
Please guide me that what would make a good GSoc project: File system cache or kernel as userland process. Any suggested reading? 
Moreover, considering my experience, if you think some other project is more demanding, for the current state of Haiku, and aligned to my skill set, then please do let me know.
I hope I'll be able to make a significant contribution to Haiku.

Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
Open-beos-kernel-devel mailing list
Colin Günther | 3 Mar 22:01 2010

Increase syslog_buffer_size

I'd like to increase the syslog_buffer_size to 1024000 (~ 1 MB) for the 
purpose of getting rid of the DROP and TRUNC messages when inspecting 
syslog of WiFi-driver systems. This would make debugging Wifi issues a 
lot easier, as the syslogs can be directly used instead of requesting to 
increase the syslog_buffer_size first to get a new syslog.

I know this value is high, but previous public testing of the 
atheroswifi driver showed that everything below that value still 
generates the DROP and TRUNC (though less often).

I think my request would be a candidate for a vote, so would this list 
be the correct place for this? Or would such a vote be better suited for 
the haiku-development list?

Kind Regards

Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
Colin Günther | 1 Jan 22:09 2010

Adding strndup to kernel


would it be ok to add strndup.cpp to kernel_lib_posix.o?
I'd like to make use of it in the freebsd compat layer, where a string 
(originating in FreeBSD driver code) has to be duplicated and I have a 
bad feeling about using strdup for it.
I know of alternative approaches to implement a safe copy, but I wanted 
to ask first.

Kind Regards

This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers 
Rene Gollent | 22 Aug 01:54 2009

Signals and preemption-related question


Michael and I were having a discussion about the current behavior with
respect to preemption on release_sem_etc and/or signal delivery, and
an uncertain question crops up: In quite a few cases, if a thread is
woken up by either one, that wakeup is being used as a communications
mechanism between two threads (i.e. to wake up another thread and tell
it data is ready to be worked on). However, the scheduler currently
only preempts if the new thread's priority is greater than that of the
instigator. In cases like this though, it's entirely possible the two
threads will be of equal priority, and as such that strategy might
result in undesired latency on waking up the recipient since the
sender will be allowed the rest of its timeslice. However, at the same
time, if we did signal preemption on equal priority, there's still no
guarantee that the target thread will in fact be the one woken up due
to a) the 20% random factor we use for priority skipping, and b) the
fact that we enqueue new threads at the end of the list of waiting
threads at the same priority, and as such if another is waiting it
will go first (if it goes at all). Is this a situation we want to deal
with, and if so, any thoughts on how?



Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.
Marcus Overhagen | 19 Apr 12:36 2009

Fwd: Re: Core Topology


it looks like my previos mail never made it to the list. I'm resending it.
From: Marcus Overhagen <marcusoverhagen@...>
Subject: Re: [Open-beos-kernel-devel] Core Topology
Date: 2009-04-08 22:37:57 GMT
Christian Packmann schrieb:

> The current implementation in Haiku only allows CPUID input in register 
> EAX; some recent CPUID functions on Intel also require an input in ECX to 
> indicate the requested level of the topology. So there needs to be a new 
> CPUID wrapper which also allows for inputs to ECX. I already mentioned 

We could add an
get_cpuid_etc(cpuid_info *, const cpuid_params *, uint32 flags)

struct cpuid_params {
   uint32	cpuNum;
   uint32	eax;
   uint32	ebx;
   uint32	edx;
   uint32	ecx;

Or we use a macro as in get_sem_info and break source compatibility.

status_t get_cpuid(cpuid_info *info, uint32 eaxRegister, uint32 cpuNum);
status_t _get_cpuid_etc(cpuid_info *, const cpuid_params *);

#define get_cpuid(info, param) _get_cpuid_etc(info, param)

which would overlay get_cpuid calls while still retaining binary 

optionally, extend the cpuid_info struct

typedef union {
   struct {
     uint32	eax;
     uint32	ebx;
     uint32	edx;
     uint32	ecx;
   } inputs;
} cpuid_info;

instead of adding the params struct.


Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32.
Open-beos-kernel-devel mailing list
Aldrin Montana | 2 Apr 06:57 2009

new student wanting to participate

Hello Haiku Developers,

My name is Aldrin and I am a second year student at Cal Poly, San Luis Obispo. Today in one of my classes my professor made the announcement that Haiku OS was part of Google Summer of Code and looking for volunteers. I'm not sure if this project is still looking for more developers but I would like to try and contribute what I can.

My main interest with this project lies in kernel programming, or something along those lines. Last quarter I took an intro operating systems class and enjoyed it. I am taking the second part of that course this quarter, and think that this project would fit me perfectly. However, I am fairly busy with classes, working on satellite projects at school, work, and other extracurriculars. But I believe that since most of the development for this project will take place during the summer, I will have enough free time (maybe 10 - 15 hours per week minimum) to contribute a moderate amount of source code or debug any existing code.

My experience includes programming in C and Java. I have some exposure to bash scripting, Perl, and Python. Also, for my operating systems class last quarter I did some minor kernel programming for the linux 2.6.15 kernel under the Suse10 OS.

I am willing to work hard to learn all I need to know about kernel programming for the Haiku OS and hope that although I am applying quite late, and have not done anything for the project so far, I may be selected to become part of the kernel developing team.

Aldrin Montana

Open-beos-kernel-devel mailing list
Rene Gollent | 21 Mar 16:49 2009

Core Topology


Are there any plans to implement a mechanism by which a scheduler
could discover the topology of the detected CPUs/cores/hardware
threads? If not, any preference on what such an API should look like?



Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial.