On Aug 4, 2009, at 9:59 AM, Robert P. J. Day wrote:


 as a short followup to that earlier post, the value of seq files is
obviously to break down the possible output of *lots* of data into
bite-sized pieces.  but how large can those pieces be?

 from fs/seq_file.c, in the routine traverse():

      if (!m->buf) {
               m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL);
               if (!m->buf)
                       return -ENOMEM;

that suggests to me that a single, machine-specific PAGE_SIZE is the
hard limit on a single seq_file data transfer.  is that correct?

Yes.
Choice between the all-in-one approach (using the single*() methods) or the iterative approach with the start()/stop()/next()/show() gamut can hide this effect to user space to some extent if required.

-Bruce


rday
--

= = ====================================================================== Robert P. J. Day Waterloo, Ontario, CANADA

       Linux Consulting, Training and Annoying Kernel Pedantry.

Web page:                                          http://crashcourse.ca
Twitter:                                       http://twitter.com/rpjday
"Kernel Newbie Corner" column @ linux.com:          http://cli.gs/WG6WYX
= = ======================================================================

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ


--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to