All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kirill Tkhai <tkhai@yandex.ru>
To: Allen Pais <allen.pais@oracle.com>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"bigeasy@linutronix.de" <bigeasy@linutronix.de>
Subject: Re: [PATCH 3/4] sparc64: convert spinlock_t to raw_spinlock_t in mmu_context_t
Date: Wed, 12 Feb 2014 15:43:06 +0400	[thread overview]
Message-ID: <341861392205386@web5h.yandex.ru> (raw)
In-Reply-To: <52FB5AEF.3040807@oracle.com>

12.02.2014, 15:29, "Allen Pais" <allen.pais@oracle.com>:
>>>>>    [ 1487.027884] I7: <rt_mutex_setprio+0x3c/0x2c0>
>>>>>    [ 1487.027885] Call Trace:
>>>>>    [ 1487.027887]  [00000000004967dc] rt_mutex_setprio+0x3c/0x2c0
>>>>>    [ 1487.027892]  [00000000004afe20] task_blocks_on_rt_mutex+0x180/0x200
>>>>>    [ 1487.027895]  [0000000000819114] rt_spin_lock_slowlock+0x94/0x300
>>>>>    [ 1487.027897]  [0000000000817ebc] __schedule+0x39c/0x53c
>>>>>    [ 1487.027899]  [00000000008185fc] schedule+0x1c/0xc0
>>>>>    [ 1487.027908]  [000000000048fff4] smpboot_thread_fn+0x154/0x2e0
>>>>>    [ 1487.027913]  [000000000048753c] kthread+0x7c/0xa0
>>>>>    [ 1487.027920]  [00000000004060c4] ret_from_syscall+0x1c/0x2c
>>>>>    [ 1487.027922]  [0000000000000000]           (null)
>>>   Now, consistently I've been getting sun4v_data_access_exception.
>>>   Here's the trace:
>>>   [ 4673.360121] sun4v_data_access_exception: ADDR[0000080000000000] CTX[0000] TYPE[0004], going.
>>  I've never dived at sparc's tlb before, but it seems now I'm understanding.
>>
>>  arch_enter_lazy_mmu_mode() makes possible delayed tlb flushing. In !RT kernel
>>  you collect flush requests before you really flush all of them.
>>
>>  In RT you collect them too, but you are able to be preempted in any moment.
>>  So, you may switch to other process with unflushed tlb, which is very bad.
>>
>>  Try to not to set tb->active = 1; in arch_enter_lazy_mmu_mode(). Set it to zero.
>>  We will look if this robust fix helps.
>
> Kirill, Well the change works. So far the machine is up and no stall or crashes
> with Hackbench. I'll run it for longer period and check.

Ok, good.

But I don't know is this the best fix. May we have to implement another optimization
for RT.

For example, collect only batches which does not require smp call function. Or the
main goal of lazy tlb was to prevent smp calls?! It's good to discover this..

The other serious thing is to know does __set_pte_at() execute in preemption disable
context on !RT kernel. Because the place is interesting.

If yes, we have to do the same for RT. If not, then no.

Kirill

>
> Thanks,
>
> Allen
>
> --
> To unsubscribe from this list: send the line "unsubscribe sparclinux" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Kirill Tkhai <tkhai@yandex.ru>
To: Allen Pais <allen.pais@oracle.com>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"bigeasy@linutronix.de" <bigeasy@linutronix.de>
Subject: Re: [PATCH 3/4] sparc64: convert spinlock_t to raw_spinlock_t in mmu_context_t
Date: Wed, 12 Feb 2014 11:43:06 +0000	[thread overview]
Message-ID: <341861392205386@web5h.yandex.ru> (raw)
In-Reply-To: <52FB5AEF.3040807@oracle.com>

12.02.2014, 15:29, "Allen Pais" <allen.pais@oracle.com>:
>>>>> ššš[ 1487.027884] I7: <rt_mutex_setprio+0x3c/0x2c0>
>>>>> ššš[ 1487.027885] Call Trace:
>>>>> ššš[ 1487.027887] š[00000000004967dc] rt_mutex_setprio+0x3c/0x2c0
>>>>> ššš[ 1487.027892] š[00000000004afe20] task_blocks_on_rt_mutex+0x180/0x200
>>>>> ššš[ 1487.027895] š[0000000000819114] rt_spin_lock_slowlock+0x94/0x300
>>>>> ššš[ 1487.027897] š[0000000000817ebc] __schedule+0x39c/0x53c
>>>>> ššš[ 1487.027899] š[00000000008185fc] schedule+0x1c/0xc0
>>>>> ššš[ 1487.027908] š[000000000048fff4] smpboot_thread_fn+0x154/0x2e0
>>>>> ššš[ 1487.027913] š[000000000048753c] kthread+0x7c/0xa0
>>>>> ššš[ 1487.027920] š[00000000004060c4] ret_from_syscall+0x1c/0x2c
>>>>> ššš[ 1487.027922] š[0000000000000000] šššššššššš(null)
>>> ššNow, consistently I've been getting sun4v_data_access_exception.
>>> ššHere's the trace:
>>> šš[ 4673.360121] sun4v_data_access_exception: ADDR[0000080000000000] CTX[0000] TYPE[0004], going.
>> šI've never dived at sparc's tlb before, but it seems now I'm understanding.
>>
>> šarch_enter_lazy_mmu_mode() makes possible delayed tlb flushing. In !RT kernel
>> šyou collect flush requests before you really flush all of them.
>>
>> šIn RT you collect them too, but you are able to be preempted in any moment.
>> šSo, you may switch to other process with unflushed tlb, which is very bad.
>>
>> šTry to not to set tb->active = 1; in arch_enter_lazy_mmu_mode(). Set it to zero.
>> šWe will look if this robust fix helps.
>
> Kirill, Well the change works. So far the machine is up and no stall or crashes
> with Hackbench. I'll run it for longer period and check.

Ok, good.

But I don't know is this the best fix. May we have to implement another optimization
for RT.

For example, collect only batches which does not require smp call function. Or the
main goal of lazy tlb was to prevent smp calls?! It's good to discover this..

The other serious thing is to know does __set_pte_at() execute in preemption disable
context on !RT kernel. Because the place is interesting.

If yes, we have to do the same for RT. If not, then no.

Kirill

>
> Thanks,
>
> Allen
>
> --
> To unsubscribe from this list: send the line "unsubscribe sparclinux" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at šhttp://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2014-02-12 11:43 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-06  3:55 [PATCH 0/4] PREEMPT_RT support for sparc64 Allen Pais
2014-01-06  3:55 ` Allen Pais
2014-01-06  3:55 ` [PATCH 1/4] sparc64: use generic rwsem spinlocks rt Allen Pais
2014-01-06  3:56   ` Allen Pais
2014-01-06  3:55 ` [PATCH 2/4] sparc64: allow forced irq threading Allen Pais
2014-01-06  3:56   ` Allen Pais
2014-01-06  3:55 ` [PATCH 3/4] sparc64: convert spinlock_t to raw_spinlock_t in mmu_context_t Allen Pais
2014-01-06  3:56   ` Allen Pais
2014-02-11 21:13   ` Kirill Tkhai
2014-02-11 21:13     ` Kirill Tkhai
2014-02-12  7:31     ` Allen Pais
2014-02-12  7:43       ` Allen Pais
2014-02-12  7:48     ` Allen Pais
2014-02-12  7:48       ` Allen Pais
2014-02-12  8:33       ` Kirill Tkhai
2014-02-12  8:33         ` Kirill Tkhai
2014-02-12 11:28         ` Allen Pais
2014-02-12 11:40           ` Allen Pais
2014-02-12 11:43           ` Kirill Tkhai [this message]
2014-02-12 11:43             ` Kirill Tkhai
2014-02-12 12:14             ` Allen Pais
2014-02-12 12:26               ` Allen Pais
2014-02-12 12:45               ` Kirill Tkhai
2014-02-12 12:45                 ` Kirill Tkhai
2014-02-12 13:05                 ` Allen Pais
2014-02-12 13:17                   ` Allen Pais
2014-02-19  3:53                 ` Allen Pais
2014-02-19  3:54                   ` Allen Pais
2014-02-19  8:09                   ` Kirill Tkhai
2014-02-19  8:09                     ` Kirill Tkhai
2014-02-19  8:12                     ` Allen Pais
2014-02-19  8:24                       ` Allen Pais
2014-02-19  8:57                       ` Kirill Tkhai
2014-02-19  8:57                         ` Kirill Tkhai
2014-02-19  8:59                         ` Allen Pais
2014-02-19  8:59                           ` Allen Pais
2014-02-19  9:13                         ` Allen Pais
2014-02-19  9:25                           ` Allen Pais
2014-02-19  9:25                           ` Kirill Tkhai
2014-02-19  9:25                             ` Kirill Tkhai
2014-02-19  9:31                             ` Allen Pais
2014-02-19  9:43                               ` Allen Pais
2014-02-26  7:51                             ` Allen Pais
2014-02-26  7:52                               ` Allen Pais
2014-02-28 14:51                               ` Kirill Tkhai
2014-02-28 14:51                                 ` Kirill Tkhai
2014-03-04 19:10                                 ` David Miller
2014-03-04 19:10                                   ` David Miller
2014-03-04 20:28                                   ` David Miller
2014-03-04 20:28                                     ` David Miller
2014-03-05  4:30                                     ` Allen Pais
2014-03-05  4:42                                       ` Allen Pais
2014-03-06 21:36                                       ` David Miller
2014-03-06 21:36                                         ` David Miller
2014-03-07 14:05                                         ` Sebastian Andrzej Siewior
2014-03-07 14:05                                           ` Sebastian Andrzej Siewior
2014-03-04 20:39                                   ` Kirill Tkhai
2014-03-04 20:39                                     ` Kirill Tkhai
2014-03-07 13:41                                   ` Sebastian Andrzej Siewior
2014-03-07 13:41                                     ` Sebastian Andrzej Siewior
2014-03-04 20:03                             ` David Miller
2014-03-04 20:03                               ` David Miller
2014-03-04 21:26                               ` Kirill Tkhai
2014-03-04 21:26                                 ` Kirill Tkhai
2014-03-04 20:01                   ` David Miller
2014-03-04 20:01                     ` David Miller
2014-03-05  4:34                     ` Allen Pais
2014-03-05  4:46                       ` Allen Pais
2014-03-05  4:52                       ` David Miller
2014-03-05  4:52                         ` David Miller
2014-03-04 19:59             ` David Miller
2014-03-04 19:59               ` David Miller
2014-03-04 19:55         ` David Miller
2014-03-04 19:55           ` David Miller
2014-03-04 20:44           ` Kirill Tkhai
2014-03-04 20:44             ` Kirill Tkhai
2014-03-07 14:29           ` Sebastian Andrzej Siewior
2014-03-07 14:29             ` Sebastian Andrzej Siewior
2014-01-06  3:55 ` [PATCH 4/4] sparc64: convert ctx_alloc_lock raw_spinlock_t Allen Pais
2014-01-06  3:56   ` Allen Pais
2014-02-05  3:31 ` [PATCH 0/4] PREEMPT_RT support for sparc64 Allen Pais
2014-02-05  8:28   ` Sebastian Andrzej Siewior
2014-02-05 10:38     ` Allen Pais
2014-02-05 10:43       ` Sebastian Andrzej Siewior
2014-02-05 10:51         ` Allen Pais

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=341861392205386@web5h.yandex.ru \
    --to=tkhai@yandex.ru \
    --cc=allen.pais@oracle.com \
    --cc=bigeasy@linutronix.de \
    --cc=davem@davemloft.net \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=sparclinux@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.