Re: pktcdvd stack usage regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Adrian Bunk <[email protected]> writes:

> Hi Phillip,
> 
> your recent patch "pktcdvd: Allow larger packets" changed 
> PACKET_MAX_SIZE in the pktcdvd driver from 32 to 128.
> 
> Unfortunately, drivers/block/pktcdvd.c contains the following:
> 
> <--  snip  -->
> 
> ...
> static void pkt_start_write(struct pktcdvd_device *pd, struct 
> packet_data *pkt)
> {
>         struct bio *bio;
>         struct page *pages[PACKET_MAX_SIZE];
>         int offsets[PACKET_MAX_SIZE];
> ...
> 
> <--  snip  -->
> 
> With PACKET_MAX_SIZE=128, this allocates more than 1 kB on the stack 

Yes, I know.

> which is not acceptable considering that we might have only 4 kB stack 
> altogether.

Why is it not acceptable? The pkt_start_write() function is only
called from the kcdrwd() kernel thread and the pkt_start_write()
function doesn't call anything else in the kernel that could require
lots of stack space.

The actual I/O is started from pkt_iosched_process_queue(), which
calls generic_make_request(). However pkt_iosched_process_queue() is
on a different call chain than pkt_start_write(), so I don't see how
this could be a problem.

-- 
Peter Osterlund - [email protected]
http://web.telia.com/~u89404340
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux