Re: Linux from scratch

2013-04-10 Thread Mulyadi Santosa
On Wed, Apr 10, 2013 at 8:01 PM, Pietro Paolini  wrote:
> Did you achieve in compile and run the 1.0 Linux kernel on your system ? I am 
> really curios !
> Best Regards
> Pietro .
>
>
>
>

I haven't tested that by myself. IIRC I only tried to run the provided
disk image inside Qemu, but that's all.

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Forum for asking questions related to block device drivers

2013-04-10 Thread Rajat Sharma
Hi,

On Thu, Apr 11, 2013 at 2:23 AM, neha naik  wrote:
> Hi All,
>Nobody has replied to my query here. So i am just wondering if there is a
> forum for block device driver where i can post my query.
> Please tell me if there is any such forum.
>
> Thanks,
> Neha
>
> -- Forwarded message --
> From: neha naik 
> Date: Tue, Apr 9, 2013 at 10:18 AM
> Subject: Passthrough device driver performance is low on reads compared to
> writes
> To: kernelnewbies@kernelnewbies.org
>
>
> Hi All,
>   I have written a passthrough block device driver using 'make_request'
> call. This block device driver simply passes any request that comes to it
> down to lvm.
>
> However, the read performance for my passthrough driver is around 65MB/s
> (measured through dd) and write performance is around 140MB/s for dd block
> size 4096.
> The write performance matches with lvm's write performance more or less but,
> the read performance on lvm is around 365MB/s.
>
> I am posting snippets of code which i think are relevant here:
>
> static int passthrough_make_request(
> struct request_queue * queue, struct bio * bio)
> {
>
> passthrough_device_t * passdev = queue->queuedata;
> bio->bi_bdev = passdev->bdev_backing;
> generic_make_request(bio);
> return 0;
> }
>
> For initializing the queue i am using following:
>
> blk_queue_make_request(passdev->queue, passthrough_make_request);
> passdev->queue->queuedata = sbd;
> passdev->queue->unplug_fn = NULL;
> bdev_backing = passdev->bdev_backing;
> blk_queue_stack_limits(passdev->queue, bdev_get_queue(bdev_backing));
> if ((bdev_get_queue(bdev_backing))->merge_bvec_fn) {
> blk_queue_merge_bvec(sbd->queue, sbd_merge_bvec_fn);
> }
>

What is the implementation for sbd_merge_bvec_fn? Please debug through
it to check requests are merging or not? May be that is the cause of
lower performance?

> Now, I browsed through dm code in kernel to see if there is some flag or
> something which i am not using which is causing this huge performance
> penalty.
> But, I have not found anything.
>
> If you have any ideas about what i am possibly doing wrong then please tell
> me.
>
> Thanks in advance.
>
> Regards,
> Neha
>

-Rajat

>
> ___
> Kernelnewbies mailing list
> Kernelnewbies@kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Forum for asking questions related to block device drivers

2013-04-10 Thread neha naik
Hi All,
   Nobody has replied to my query here. So i am just wondering if there is
a forum for block device driver where i can post my query.
Please tell me if there is any such forum.

Thanks,
Neha

-- Forwarded message --
From: neha naik 
Date: Tue, Apr 9, 2013 at 10:18 AM
Subject: Passthrough device driver performance is low on reads compared to
writes
To: kernelnewbies@kernelnewbies.org


Hi All,
  I have written a passthrough block device driver using 'make_request'
call. This block device driver simply passes any request that comes to it
down to lvm.

However, the read performance for my passthrough driver is around 65MB/s
(measured through dd) and write performance is around 140MB/s for dd block
size 4096.
The write performance matches with lvm's write performance more or less
but, the read performance on lvm is around 365MB/s.

I am posting snippets of code which i think are relevant here:

static int passthrough_make_request(
struct request_queue * queue, struct bio * bio)
{

passthrough_device_t * passdev = queue->queuedata;
bio->bi_bdev = passdev->bdev_backing;
generic_make_request(bio);
return 0;
}

For initializing the queue i am using following:

blk_queue_make_request(passdev->queue, passthrough_make_request);
passdev->queue->queuedata = sbd;
passdev->queue->unplug_fn = NULL;
bdev_backing = passdev->bdev_backing;
blk_queue_stack_limits(passdev->queue, bdev_get_queue(bdev_backing));
if ((bdev_get_queue(bdev_backing))->merge_bvec_fn) {
blk_queue_merge_bvec(sbd->queue, sbd_merge_bvec_fn);
}

Now, I browsed through dm code in kernel to see if there is some flag or
something which i am not using which is causing this huge performance
penalty.
But, I have not found anything.

If you have any ideas about what i am possibly doing wrong then please tell
me.

Thanks in advance.

Regards,
Neha
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Kexec sys call code

2013-04-10 Thread leo kirotawa
Hi,

I'm working in a project and there I need use kexec code to do somethings.
I read a lot of the kexec-tools code (user-land) and kexec-sys call
(k-land) and I'd like to be sure about some arguments there.

In kexec we have that kexec_image and into it that nr_segments and the
segments itself. I know that kernel image passed by kexec in user land
(bzImage) is copy in a buffer and in kexe_load it receives the entry point
for this new kernel (bzImage)  and the start position where (I'm supposing
) start the kernel image. So , my question is, using that nr_segments or
segemtns by itself can I determine the size of the bzImage/image in
kexec-sys call?

And these guesses about entry point and the address of start kernel image,
is it correct?

This is the kexec.c file (where we have the sys call and  a bunch of
another code).

http://lxr.free-electrons.com/source/kernel/kexec.c
-- 
--
Leônidas S. Barbosa (Kirotawa)
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: the github repo, and bugzilla.kernel.org

2013-04-10 Thread Jonathan Neuschäfer
On Wed, Apr 10, 2013 at 08:12:46PM +0430, Haix64 wrote:
> Hi.
> 
> I was wondering how the "torvalds/linux" github repo, and the 

Linus created the github repo during the kernel.org security breach of
2011. (see 
http://www.linuxfoundation.org/news-media/blogs/browse/2011/08/cracking-kernelorg)
I think he planned to always push all changes to both repositories.


HTH,
Jonathan Neuschäfer

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


the github repo, and bugzilla.kernel.org

2013-04-10 Thread Haix64
Hi.

I was wondering how the "torvalds/linux" github repo, and the 
bugzilla.kernel.org are involved, if we can simply clone the repo from 
kernel.org and discuss things in the mailing lists.

thank you.

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: open_softirq do?

2013-04-10 Thread Rami Rosen
Hi,
This is simply a registration of the software interrupt TX method
(net_tx_action).


The net_tx_action() is invoked in general when transmission was finished:
look in :
http://lxr.free-electrons.com/source/net/core/dev.c

void dev_kfree_skb_irq(struct sk_buff *skb)
...
raise_softirq_irqoff(NET_TX_SOFTIRQ);
...


whereas the dev_kfree_skb_irq() is called from the driver TX path for
freeing the skb.

There are other case; look in __netif_reschedule(), and in

dev_cpu_callback(), in net/core/dev.c


regards,
Rami Rosen
http://ramirose.wix.com/ramirosen


On Wed, Apr 10, 2013 at 3:18 PM, Robert Clove  wrote:
> Hello All,
>
> I am clear all that the softirq is a software interrupt :
> Whenever a system call is about to return to the user space or h/w interrupt
> exit,ant s/w interrupt which are marked pending are run.
>
> Now in networking code i found
>
> open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL);
>
> What does this do?
>
> Thanks
>
>
> ___
> Kernelnewbies mailing list
> Kernelnewbies@kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


open_softirq do?

2013-04-10 Thread Robert Clove
Hello All,

I am clear all that the softirq is a software interrupt :
Whenever a system call is about to return to the user space or h/w
interrupt exit,ant s/w interrupt which are marked pending are run.

Now in networking code i found

open_softirq(NET_TX_SOFTIRQ, net_tx_action, NULL);

What does this do?

Thanks
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: At which Network Layer

2013-04-10 Thread Yi Li

? 2013?04?10? 16:42, Robert Clove ??:

Hello All,

There is a field in sk_buff structure name clone which tell whether 
the sk_buff structure has been cloned or not?


I want to know at which layer does this clonning happen at L2,L3 or L4.

any layer when it is needed.
you can check function: net/core/sk_buff.c: skb_clone(), it is called in 
drivers, L3(like ip), and L4(like tcp).



Thanks





___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


At which Network Layer

2013-04-10 Thread Robert Clove
Hello All,

There is a field in sk_buff structure name clone which tell whether the
sk_buff structure has been cloned or not?

I want to know at which layer does this clonning happen at L2,L3 or L4.


Thanks
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies