Re: [PATCH -v3 1/2] ratelimit: Extend to print suppressed messages on release
From: Christian Borntraeger
Date: Tue Jul 05 2016 - 16:54:10 EST
On 07/05/2016 10:08 PM, Joe Perches wrote:
> On Tue, 2016-07-05 at 15:49 -0400, Steven Rostedt wrote:
>> On Tue, 5 Jul 2016 21:42:45 +0200 Borislav Petkov <bp@xxxxxxxxx> wrote:
>>> On Tue, Jul 05, 2016 at 02:57:32PM -0400, Steven Rostedt wrote:
>>>> Perhaps we should show both, unless you don't think this will ever be
>>>> used by anything other than devkmsg?
>>> I'd say let's do it only when we go down that road and start using it
>>> for something else.
>>>
>>> Because, for example, the ratelimiting thing is, in fact, generic but it
>>> is used primarily to ratelimit printks. Even though it could be used for
>>> something else, theoretically...
>>>
>> But you know... Build it and they will come.
>
> arch/s390/kvm/kvm-s390.c: ratelimit_state_init(&kvm->arch.sthyi_limit, 5 * HZ, 500);
>
> As far as I know, _ratelimit is used for non-printk purposes in
> arch/s390/kvm/sthyi.c
>
> int handle_sthyi(struct kvm_vcpu *vcpu)
> {
> int reg1, reg2, r = 0;
> u64 code, addr, cc = 0;
> struct sthyi_sctns *sctns = NULL;
>
> /*
> * STHYI requires extensive locking in the higher hypervisors
> * and is very computational/memory expensive. Therefore we
> * ratelimit the executions per VM.
> */
> if (!__ratelimit(&vcpu->kvm->arch.sthyi_limit)) {
> kvm_s390_retry_instr(vcpu);
> return 0;
> }
Yes, this is new in next. As far as I can see, the new message would only
appear if we would call ratelimit_state_exit. Correct? We do not call this -
I assume this is ok?
We really only want to reuse the rate limit base code (to avoid writing the same
code twice) and being in lib indicated that this can indeed be used outside
printk.
Now: your patch 1 would allow me to get rid of the messages completely
by setting the flag and by not calling ratelimit_state_exit. Which is probably
what we should do in our code.
Christian