On Fri, 2005-09-09 at 14:15 +0300, Pekka J Enberg wrote:
> On Fri, 9 Sep 2005, Anton Altaparmakov wrote:
> > Also note I only use the ntfs_malloc_nofs() wrapper if I have to.  If I
> > know how much I am allocating or at least know that the maximum is quite
> > small, I use kmalloc() directly.  It is pretty much only for the runlist
> > allocations that I use the wrapper as the runlist is typically small but
> > for fragmented files it can grow huge.  I have seen runlists consuming
> > over 256kiB of ram, without vmalloc that would be a real problem...
> 
> So things like
> 
>       rl = ntfs_malloc_nofs(rlsize = PAGE_SIZE);
> 
> should be changed to kmalloc(), right?

They could be but I would rather not.  What if one day I decide to
change how ntfs_malloc_nofs() works?  Then it would be needed to
carefully go through the whole driver looking for places where kmalloc
is used and change those, too.

>From a software design point of view you should never mix interfaces
when accessing an object if you want clean and maintainable code.  And
using kmalloc() sometimes and ntfs_malloc_nofs() at other times for the
same object would violate that.

The wrapper is a static inline so I would assume gcc can optimize away
everything when a constant size is passed in like in the example you
point out above.

Best regards,

        Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/

-
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/

Reply via email to