All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefani Seibold <stefani@seibold.net>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <andi@firstfloor.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] [4/6] kfifo: add kfifo_out_peek
Date: Mon, 04 Jan 2010 23:47:39 +0100	[thread overview]
Message-ID: <1262645259.6469.18.camel@wall-e> (raw)
In-Reply-To: <20100104222429.6a386a88@lxorguk.ukuu.org.uk>

Am Montag, den 04.01.2010, 22:24 +0000 schrieb Alan Cox:
> > Macros are unpopular, for good reasons.  But the case for a
> > template-based container such as this is a good one.  However I worry
> > about the code bloat whcih the macro version might add.  We worry about
> > all this later on.
> 
> Its really a special case for structs and fixed objects.
> 
> Bloat is going to be a big issue if its macro and all the serial/tty
> stuff switches to it. Please keep the bytewise one none macro - even if
> its a lib/foo.c file that simply uses the macros to produce the existing
> new API.

Nope, currently the bytewise is the special case. Most of the user of
kfifo try to store other type then bytes in a fifo. 

The new macro based kfifo does not bloat the code, the opposite is the
truth. I checked the assembler output on intel and ppc and the generated
code is smaller and better.

The macro are written in a way that you get a useful single line compile
time error message.

Also "the power of two" thing will make the kfifo not very useable to
handle not multiple of 2 datas, in a fifo.

At last a type safe kfifo is 100% compatible to the current kfifo if the
the is a "unsigned char".

It would be better to discuss this in the "[PATCH] new kfifo API v.08"
threat from 28.12.2009.

Regards,
Stefani



  reply	other threads:[~2010-01-04 22:47 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-27 21:03 [PATCH] [0/6] kfifo fixes/improvements Andi Kleen
2009-12-27 21:03 ` [PATCH] [1/6] kfifo: Use void * pointers for user buffers Andi Kleen
2009-12-27 21:48   ` Stefani Seibold
2009-12-27 21:03 ` [PATCH] [2/6] kfifo: Make kfifo_in atomic Andi Kleen
2009-12-27 21:46   ` Stefani Seibold
2009-12-27 21:03 ` [PATCH] [3/6] kfifo: Sanitize *_user error handling Andi Kleen
2009-12-27 21:38   ` Stefani Seibold
2009-12-27 23:34     ` Andi Kleen
2009-12-28  7:10       ` Stefani Seibold
2010-01-04 22:33   ` Stefani Seibold
2009-12-27 21:03 ` [PATCH] [4/6] kfifo: add kfifo_out_peek Andi Kleen
2009-12-27 21:49   ` Stefani Seibold
2009-12-27 23:41     ` Andi Kleen
2009-12-28  7:09       ` Stefani Seibold
2010-01-04 21:57       ` Andrew Morton
2010-01-04 22:24         ` Alan Cox
2010-01-04 22:47           ` Stefani Seibold [this message]
2010-01-05  0:14             ` Alan Cox
2009-12-27 21:03 ` [PATCH] [5/6] kfifo: Add kfifo_initialized Andi Kleen
2009-12-27 21:53   ` Stefani Seibold
2009-12-27 21:03 ` [PATCH] [6/6] kfifo: Document everywhere that size has to be power of two Andi Kleen
2009-12-27 21:50   ` Stefani Seibold
2009-12-27 22:14     ` Dmitry Torokhov
2009-12-27 22:23       ` Stefani Seibold
2009-12-27 23:34       ` Andi Kleen
2009-12-27 21:36 ` [PATCH] [0/6] kfifo fixes/improvements Stefani Seibold
2009-12-27 23:38   ` Andi Kleen
2009-12-28  6:49     ` Stefani Seibold
2009-12-28  7:42     ` Stefani Seibold
2009-12-28 14:57       ` Andi Kleen
2009-12-28 16:08         ` Stefani Seibold
2009-12-28 17:26           ` Andi Kleen
2009-12-28 20:04             ` Stefani Seibold
2009-12-28 20:40               ` Andi Kleen
2009-12-29  8:40                 ` Stefani Seibold
2009-12-29 22:27                   ` Dmitry Torokhov
2009-12-30  1:18                     ` Vikram Dhillon
2009-12-30  2:08                       ` Dmitry Torokhov
2009-12-30  9:29                         ` Stefani Seibold
2009-12-30 10:43                           ` Dmitry Torokhov
2009-12-30 10:52                             ` Stefani Seibold
2009-12-30 11:07                               ` Dmitry Torokhov
2009-12-30 11:32                                 ` Stefani Seibold
2009-12-30 17:29                         ` Andy Walls
2009-12-31  7:35                           ` Dmitry Torokhov
2009-12-31  8:59                             ` Stefani Seibold
2009-12-31  9:33                               ` Dmitry Torokhov
2009-12-31 18:03                             ` Andy Walls
2009-12-30 17:15                     ` Andy Walls
2009-12-28  0:12   ` Roland Dreier
2009-12-28  1:41     ` Andi Kleen
2009-12-28  7:06       ` Stefani Seibold
2009-12-28 14:56         ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1262645259.6469.18.camel@wall-e \
    --to=stefani@seibold.net \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=andi@firstfloor.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.