On 21.06.2010 (Mon) at 15:38 +0100 Alan Cox wrote: > > I'm thinking to leave the ratelimit support in for the time being. I had > > in mind cases, when someone does > > "cat /proc/kmsg > dev/ttyprintk" or > > suppose the console is redirected to ttyprintk (which i would like to be > > able to do from user program) > > Console as in the printk sense would then loop. > > If you are going to do the flow control you should probably do something > like > > > write_room() > { > if (!flow_controlled) > space = 8192; > return space; > } > > write() > { > space -= len; > } > > then your flow control will behave properly and slow down users rather > than losing data (except stuff sent without blocking) > For correct flow control, i suppose current empty space of the real (final) printk buffer is needed. On the other hand my intermediate pre-formatting buffer is only "one line" long, but serialized on access in a way that it is always completely available (except for the time of tpk_printk() function running). As such intermediate buffer only defines maximum write_room space. Now there are two ideas. The first one is to dig out current real printk buffer space (smells like hacking?) and adapt write_room to that space in some logical manner. And the other would be to use ratelimit support to switch between max and zero in write_room answer and remove other retelimit response? What do you suggest, do i miss something? regards, Samo -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html