Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1678327 > unrolled thread
| Started by | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
|---|---|
| First post | 2017-06-30 02:20 +0200 |
| Last post | 2017-07-01 13:50 +0200 |
| Articles | 5 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH] mm, vmscan: do not loop on too_many_isolated for ever Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> - 2017-06-30 02:20 +0200
Re: [PATCH] mm, vmscan: do not loop on too_many_isolated for ever Michal Hocko <mhocko@kernel.org> - 2017-06-30 15:40 +0200
Re: [PATCH] mm, vmscan: do not loop on too_many_isolated for ever Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> - 2017-06-30 18:10 +0200
Re: [PATCH] mm, vmscan: do not loop on too_many_isolated for ever Michal Hocko <mhocko@kernel.org> - 2017-06-30 18:20 +0200
Re: [PATCH] mm, vmscan: do not loop on too_many_isolated for ever Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> - 2017-07-01 13:50 +0200
| From | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
|---|---|
| Date | 2017-06-30 02:20 +0200 |
| Subject | Re: [PATCH] mm, vmscan: do not loop on too_many_isolated for ever |
| Message-ID | <tXRPb-6s4-3@gated-at.bofh.it> |
Tetsuo Handa wrote:
> Michal Hocko wrote:
> > On Thu 09-03-17 13:05:40, Johannes Weiner wrote:
> > > On Tue, Mar 07, 2017 at 02:52:36PM -0500, Rik van Riel wrote:
> > > > It only does this to some extent. If reclaim made
> > > > no progress, for example due to immediately bailing
> > > > out because the number of already isolated pages is
> > > > too high (due to many parallel reclaimers), the code
> > > > could hit the "no_progress_loops > MAX_RECLAIM_RETRIES"
> > > > test without ever looking at the number of reclaimable
> > > > pages.
> > >
> > > Hm, there is no early return there, actually. We bump the loop counter
> > > every time it happens, but then *do* look at the reclaimable pages.
> > >
> > > > Could that create problems if we have many concurrent
> > > > reclaimers?
> > >
> > > With increased concurrency, the likelihood of OOM will go up if we
> > > remove the unlimited wait for isolated pages, that much is true.
> > >
> > > I'm not sure that's a bad thing, however, because we want the OOM
> > > killer to be predictable and timely. So a reasonable wait time in
> > > between 0 and forever before an allocating thread gives up under
> > > extreme concurrency makes sense to me.
> > >
> > > > It may be OK, I just do not understand all the implications.
> > > >
> > > > I like the general direction your patch takes the code in,
> > > > but I would like to understand it better...
> > >
> > > I feel the same way. The throttling logic doesn't seem to be very well
> > > thought out at the moment, making it hard to reason about what happens
> > > in certain scenarios.
> > >
> > > In that sense, this patch isn't really an overall improvement to the
> > > way things work. It patches a hole that seems to be exploitable only
> > > from an artificial OOM torture test, at the risk of regressing high
> > > concurrency workloads that may or may not be artificial.
> > >
> > > Unless I'm mistaken, there doesn't seem to be a whole lot of urgency
> > > behind this patch. Can we think about a general model to deal with
> > > allocation concurrency?
> >
> > I am definitely not against. There is no reason to rush the patch in.
>
> I don't hurry if we can check using watchdog whether this problem is occurring
> in the real world. I have to test corner cases because watchdog is missing.
>
> > My main point behind this patch was to reduce unbound loops from inside
> > the reclaim path and push any throttling up the call chain to the
> > page allocator path because I believe that it is easier to reason
> > about them at that level. The direct reclaim should be as simple as
> > possible without too many side effects otherwise we end up in a highly
> > unpredictable behavior. This was a first step in that direction and my
> > testing so far didn't show any regressions.
> >
> > > Unlimited parallel direct reclaim is kinda
> > > bonkers in the first place. How about checking for excessive isolation
> > > counts from the page allocator and putting allocations on a waitqueue?
> >
> > I would be interested in details here.
>
> That will help implementing __GFP_KILLABLE.
> https://bugzilla.kernel.org/show_bug.cgi?id=192981#c15
>
Ping? Ping? When are we going to apply this patch or watchdog patch?
This problem occurs with not so insane stress like shown below.
I can't test almost OOM situation because test likely falls into either
printk() v.s. oom_lock lockup problem or this too_many_isolated() problem.
----------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
static char buffer[4096] = { };
char *buf = NULL;
unsigned long size;
int i;
for (i = 0; i < 10; i++) {
if (fork() == 0) {
int fd = open("/proc/self/oom_score_adj", O_WRONLY);
write(fd, "1000", 4);
close(fd);
sleep(1);
if (!i)
pause();
snprintf(buffer, sizeof(buffer), "/tmp/file.%u", getpid());
fd = open(buffer, O_WRONLY | O_CREAT | O_APPEND, 0600);
while (write(fd, buffer, sizeof(buffer)) == sizeof(buffer))
fsync(fd);
_exit(0);
}
}
for (size = 1048576; size < 512UL * (1 << 30); size <<= 1) {
char *cp = realloc(buf, size);
if (!cp) {
size >>= 1;
break;
}
buf = cp;
}
sleep(2);
/* Will cause OOM due to overcommit */
for (i = 0; i < size; i += 4096)
buf[i] = 0;
return 0;
}
----------
Complete log is at http://I-love.SAKURA.ne.jp/tmp/serial-20170629-3.txt.xz .
[ 190.924887] a.out D13296 2191 2172 0x00000080
[ 190.927121] Call Trace:
[ 190.928304] __schedule+0x23f/0x5d0
[ 190.929843] schedule+0x31/0x80
[ 190.931261] schedule_timeout+0x189/0x290
[ 190.933068] ? del_timer_sync+0x40/0x40
[ 190.934722] io_schedule_timeout+0x19/0x40
[ 190.936467] ? io_schedule_timeout+0x19/0x40
[ 190.938272] congestion_wait+0x7d/0xd0
[ 190.939919] ? wait_woken+0x80/0x80
[ 190.941452] shrink_inactive_list+0x3e3/0x4d0
[ 190.943281] shrink_node_memcg+0x360/0x780
[ 190.945023] ? check_preempt_curr+0x7d/0x90
[ 190.946794] ? try_to_wake_up+0x23b/0x3c0
[ 190.948741] shrink_node+0xdc/0x310
[ 190.950285] ? shrink_node+0xdc/0x310
[ 190.951870] do_try_to_free_pages+0xea/0x370
[ 190.953661] try_to_free_pages+0xc3/0x100
[ 190.955644] __alloc_pages_slowpath+0x441/0xd50
[ 190.957714] __alloc_pages_nodemask+0x20c/0x250
[ 190.959598] alloc_pages_vma+0x83/0x1e0
[ 190.961244] __handle_mm_fault+0xc2c/0x1030
[ 190.963006] handle_mm_fault+0xf4/0x220
[ 190.964871] __do_page_fault+0x25b/0x4a0
[ 190.966611] do_page_fault+0x30/0x80
[ 190.968169] page_fault+0x28/0x30
[ 190.987135] a.out D11896 2193 2191 0x00000086
[ 190.989636] Call Trace:
[ 190.990855] __schedule+0x23f/0x5d0
[ 190.992384] schedule+0x31/0x80
[ 190.993797] schedule_timeout+0x1c1/0x290
[ 190.995578] ? init_object+0x64/0xa0
[ 190.997133] __down+0x85/0xd0
[ 190.998476] ? __down+0x85/0xd0
[ 190.999879] ? deactivate_slab.isra.83+0x160/0x4b0
[ 191.001843] down+0x3c/0x50
[ 191.003116] ? down+0x3c/0x50
[ 191.004460] xfs_buf_lock+0x21/0x50 [xfs]
[ 191.006146] _xfs_buf_find+0x3cd/0x640 [xfs]
[ 191.007924] xfs_buf_get_map+0x25/0x150 [xfs]
[ 191.009736] xfs_buf_read_map+0x25/0xc0 [xfs]
[ 191.011891] xfs_trans_read_buf_map+0xef/0x2f0 [xfs]
[ 191.013990] xfs_read_agf+0x86/0x110 [xfs]
[ 191.015758] xfs_alloc_read_agf+0x3e/0x140 [xfs]
[ 191.017675] xfs_alloc_fix_freelist+0x3e8/0x4e0 [xfs]
[ 191.019725] ? kmem_zone_alloc+0x8a/0x110 [xfs]
[ 191.021613] ? set_track+0x6b/0x140
[ 191.023452] ? init_object+0x64/0xa0
[ 191.025049] ? ___slab_alloc+0x1b6/0x590
[ 191.026870] ? ___slab_alloc+0x1b6/0x590
[ 191.028581] xfs_free_extent_fix_freelist+0x78/0xe0 [xfs]
[ 191.030768] xfs_free_extent+0x6a/0x1d0 [xfs]
[ 191.032577] xfs_trans_free_extent+0x2c/0xb0 [xfs]
[ 191.034534] xfs_extent_free_finish_item+0x21/0x40 [xfs]
[ 191.036695] xfs_defer_finish+0x143/0x2b0 [xfs]
[ 191.038622] xfs_itruncate_extents+0x1a5/0x3d0 [xfs]
[ 191.040686] xfs_free_eofblocks+0x1a8/0x200 [xfs]
[ 191.042945] xfs_release+0x13f/0x160 [xfs]
[ 191.044811] xfs_file_release+0x10/0x20 [xfs]
[ 191.046674] __fput+0xda/0x1e0
[ 191.048077] ____fput+0x9/0x10
[ 191.049479] task_work_run+0x7b/0xa0
[ 191.051063] do_exit+0x2c5/0xb30
[ 191.052522] do_group_exit+0x3e/0xb0
[ 191.054103] get_signal+0x1dd/0x4f0
[ 191.055663] ? __do_fault+0x19/0xf0
[ 191.057790] do_signal+0x32/0x650
[ 191.059421] ? handle_mm_fault+0xf4/0x220
[ 191.061108] ? __do_page_fault+0x25b/0x4a0
[ 191.062818] exit_to_usermode_loop+0x5a/0x90
[ 191.064588] prepare_exit_to_usermode+0x40/0x50
[ 191.066468] retint_user+0x8/0x10
[ 191.085459] a.out D11576 2194 2191 0x00000086
[ 191.087652] Call Trace:
[ 191.088883] __schedule+0x23f/0x5d0
[ 191.090437] schedule+0x31/0x80
[ 191.091830] schedule_timeout+0x189/0x290
[ 191.093541] ? del_timer_sync+0x40/0x40
[ 191.095166] io_schedule_timeout+0x19/0x40
[ 191.096881] ? io_schedule_timeout+0x19/0x40
[ 191.098657] congestion_wait+0x7d/0xd0
[ 191.100254] ? wait_woken+0x80/0x80
[ 191.101758] shrink_inactive_list+0x3e3/0x4d0
[ 191.103574] shrink_node_memcg+0x360/0x780
[ 191.105599] ? check_preempt_curr+0x7d/0x90
[ 191.107402] ? try_to_wake_up+0x23b/0x3c0
[ 191.109087] shrink_node+0xdc/0x310
[ 191.110590] ? shrink_node+0xdc/0x310
[ 191.112153] do_try_to_free_pages+0xea/0x370
[ 191.113948] try_to_free_pages+0xc3/0x100
[ 191.115639] __alloc_pages_slowpath+0x441/0xd50
[ 191.117508] __alloc_pages_nodemask+0x20c/0x250
[ 191.119374] alloc_pages_current+0x65/0xd0
[ 191.121179] xfs_buf_allocate_memory+0x172/0x2d0 [xfs]
[ 191.123262] xfs_buf_get_map+0xbe/0x150 [xfs]
[ 191.125077] xfs_buf_read_map+0x25/0xc0 [xfs]
[ 191.126909] xfs_trans_read_buf_map+0xef/0x2f0 [xfs]
[ 191.128924] xfs_btree_read_buf_block.constprop.36+0x6d/0xc0 [xfs]
[ 191.131358] xfs_btree_lookup_get_block+0x85/0x180 [xfs]
[ 191.133529] xfs_btree_lookup+0x125/0x460 [xfs]
[ 191.135562] ? xfs_allocbt_init_cursor+0x43/0x130 [xfs]
[ 191.137674] xfs_free_ag_extent+0x9f/0x870 [xfs]
[ 191.139579] xfs_free_extent+0xb5/0x1d0 [xfs]
[ 191.141419] xfs_trans_free_extent+0x2c/0xb0 [xfs]
[ 191.143387] xfs_extent_free_finish_item+0x21/0x40 [xfs]
[ 191.145538] xfs_defer_finish+0x143/0x2b0 [xfs]
[ 191.147446] xfs_itruncate_extents+0x1a5/0x3d0 [xfs]
[ 191.149485] xfs_free_eofblocks+0x1a8/0x200 [xfs]
[ 191.151630] xfs_release+0x13f/0x160 [xfs]
[ 191.153373] xfs_file_release+0x10/0x20 [xfs]
[ 191.155248] __fput+0xda/0x1e0
[ 191.156637] ____fput+0x9/0x10
[ 191.158011] task_work_run+0x7b/0xa0
[ 191.159563] do_exit+0x2c5/0xb30
[ 191.161013] do_group_exit+0x3e/0xb0
[ 191.162557] get_signal+0x1dd/0x4f0
[ 191.164071] do_signal+0x32/0x650
[ 191.165526] ? handle_mm_fault+0xf4/0x220
[ 191.167429] ? __do_page_fault+0x283/0x4a0
[ 191.169254] exit_to_usermode_loop+0x5a/0x90
[ 191.171070] prepare_exit_to_usermode+0x40/0x50
[ 191.172976] retint_user+0x8/0x10
[toc] | [next] | [standalone]
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2017-06-30 15:40 +0200 |
| Message-ID | <tY4jo-64M-31@gated-at.bofh.it> |
| In reply to | #1678327 |
On Fri 30-06-17 09:14:22, Tetsuo Handa wrote: [...] > Ping? Ping? When are we going to apply this patch or watchdog patch? > This problem occurs with not so insane stress like shown below. > I can't test almost OOM situation because test likely falls into either > printk() v.s. oom_lock lockup problem or this too_many_isolated() problem. So you are saying that the patch fixes this issue. Do I understand you corretly? And you do not see any other negative side effectes with it applied? I am sorry I didn't have much time to think about feedback from Johannes yet. A more robust throttling method is surely due but also not trivial. So I am not sure how to proceed. It is true that your last test case with only 10 processes fighting resembles the reality much better than hundreds (AFAIR) that you were using previously. Rik, Johannes what do you think? Should we go with the simpler approach for now and think of a better plan longterm? -- Michal Hocko SUSE Labs
[toc] | [prev] | [next] | [standalone]
| From | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
|---|---|
| Date | 2017-06-30 18:10 +0200 |
| Message-ID | <tY6Ey-7DT-1@gated-at.bofh.it> |
| In reply to | #1678834 |
Michal Hocko wrote: > On Fri 30-06-17 09:14:22, Tetsuo Handa wrote: > [...] > > Ping? Ping? When are we going to apply this patch or watchdog patch? > > This problem occurs with not so insane stress like shown below. > > I can't test almost OOM situation because test likely falls into either > > printk() v.s. oom_lock lockup problem or this too_many_isolated() problem. > > So you are saying that the patch fixes this issue. Do I understand you > corretly? And you do not see any other negative side effectes with it > applied? I hit this problem using http://lkml.kernel.org/r/20170626130346.26314-1-mhocko@kernel.org on next-20170628. We won't be able to test whether the patch fixes this issue without seeing any other negative side effects without sending this patch to linux-next.git. But at least we know that even this patch is sent to linux-next.git, we will still see bugs like http://lkml.kernel.org/r/201703031948.CHJ81278.VOHSFFFOOLJQMt@I-love.SAKURA.ne.jp . > > I am sorry I didn't have much time to think about feedback from Johannes > yet. A more robust throttling method is surely due but also not trivial. > So I am not sure how to proceed. It is true that your last test case > with only 10 processes fighting resembles the reality much better than > hundreds (AFAIR) that you were using previously. Even if hundreds are running, most of them are simply blocked inside open() at down_write() (like an example from serial-20170423-2.txt.xz shown below). Actual number of processes fighting for memory is always less than 100. ? __schedule+0x1d2/0x5a0 ? schedule+0x2d/0x80 ? rwsem_down_write_failed+0x1f9/0x370 ? walk_component+0x43/0x270 ? call_rwsem_down_write_failed+0x13/0x20 ? down_write+0x24/0x40 ? path_openat+0x670/0x1210 ? do_filp_open+0x8c/0x100 ? getname_flags+0x47/0x1e0 ? do_sys_open+0x121/0x200 ? do_syscall_64+0x5c/0x140 ? entry_SYSCALL64_slow_path+0x25/0x25 > > Rik, Johannes what do you think? Should we go with the simpler approach > for now and think of a better plan longterm? I don't hurry if we can check using watchdog whether this problem is occurring in the real world. I have to test corner cases because watchdog is missing. Watchdog does not introduce negative side effects, will avoid soft lockups like http://lkml.kernel.org/r/CAM_iQpWuPVGc2ky8M-9yukECtS+zKjiDasNymX7rMcBjBFyM_A@mail.gmail.com , will avoid console_unlock() v.s. oom_lock mutext lockups due to warn_alloc(), will catch similar bugs which people are failing to reproduce.
[toc] | [prev] | [next] | [standalone]
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2017-06-30 18:20 +0200 |
| Message-ID | <tY6Of-7ID-35@gated-at.bofh.it> |
| In reply to | #1678951 |
On Sat 01-07-17 00:59:56, Tetsuo Handa wrote: > Michal Hocko wrote: > > On Fri 30-06-17 09:14:22, Tetsuo Handa wrote: > > [...] > > > Ping? Ping? When are we going to apply this patch or watchdog patch? > > > This problem occurs with not so insane stress like shown below. > > > I can't test almost OOM situation because test likely falls into either > > > printk() v.s. oom_lock lockup problem or this too_many_isolated() problem. > > > > So you are saying that the patch fixes this issue. Do I understand you > > corretly? And you do not see any other negative side effectes with it > > applied? > > I hit this problem using http://lkml.kernel.org/r/20170626130346.26314-1-mhocko@kernel.org > on next-20170628. We won't be able to test whether the patch fixes this issue without > seeing any other negative side effects without sending this patch to linux-next.git. > But at least we know that even this patch is sent to linux-next.git, we will still see > bugs like http://lkml.kernel.org/r/201703031948.CHJ81278.VOHSFFFOOLJQMt@I-love.SAKURA.ne.jp . It is really hard to pursue this half solution when there is no clear indication it helps in your testing. So could you try to test with only this patch on top of the current linux-next tree (or Linus tree) and see if you can reproduce the problem? It is possible that there are other potential problems but we at least need to know whether it is worth going with the patch now. [...] > > Rik, Johannes what do you think? Should we go with the simpler approach > > for now and think of a better plan longterm? > > I don't hurry if we can check using watchdog whether this problem is occurring > in the real world. I have to test corner cases because watchdog is missing. > > Watchdog does not introduce negative side effects, will avoid soft lockups like > http://lkml.kernel.org/r/CAM_iQpWuPVGc2ky8M-9yukECtS+zKjiDasNymX7rMcBjBFyM_A@mail.gmail.com , > will avoid console_unlock() v.s. oom_lock mutext lockups due to warn_alloc(), > will catch similar bugs which people are failing to reproduce. this way of pushing your patch is really annoying. Please do realize that repeating the same thing all around will not make a patch more likely to merge. You have proposed something, nobody has nacked it so it waits for people to actually find it important enough to justify the additional code. So please stop this. I really do appreciate your testing because it uncovers corner cases most people do not test for and we can actually make the code better in the end. -- Michal Hocko SUSE Labs
[toc] | [prev] | [next] | [standalone]
| From | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
|---|---|
| Date | 2017-07-01 13:50 +0200 |
| Message-ID | <tYp4u-2CQ-19@gated-at.bofh.it> |
| In reply to | #1678971 |
Michal Hocko wrote: > I really do appreciate your testing because it uncovers corner cases > most people do not test for and we can actually make the code better in > the end. That statement does not get to my heart at all. Collision between your approach and my approach is wasting both your time and my time. I've reported this too_many_isolated() trap three years ago at http://lkml.kernel.org/r/201407022140.BFJ13092.QVOSJtFMFHLOFO@I-love.SAKURA.ne.jp . Do you know that we already wasted 3 years without any attention? You are rejecting serialization under OOM without giving a chance to test side effects of serialization under OOM at linux-next.git. I call such attitude "speculation" which you never accept. Look at mem_cgroup_out_of_memory(). Memcg OOM does use serialization. In the first place, if the system is under global OOM (which is more serious situation than memcg OOM), delay caused by serialization will not matter. Rather, I consider that making sure that the system does not get locked up is more important. I'm reporting that serialization helps facilitating the OOM killer/reaper operations, avoiding lockups, and solving global OOM situation smoothly. But you are refusing my report without giving a chance to test what side effects will pop up at linux-next.git. Knowledge about OOM situation is hardly shared among Linux developers and users, and is far from object of concern. Like shown by cgroup-aware OOM killer proposal, what will happen if we restrict 0 <= oom_victims <= 1 is not shared among developers. How many developers joined to my OOM watchdog proposal? Every time and ever it is confrontation between you and me. You, as effectively the only participant, are showing negative attitude is effectively Nacked-by: response without alternative proposal. Not everybody can afford testing with absolutely latest upstream kernels. Not prepared to obtain information for analysis using distributor kernels makes it impossible to compare whether user's problems are already fixed in upstream kernels, makes it impossible to identify patches which needs to be backported to distributor kernels, and is bad for customers using distributor kernels. Of course, it is possible that distributors decide not to allow users to obtain information for analysis, but such decision cannot become a reason we can not prepare to obtain information for analysis at upstream kernels. Suppose I take a step back and tolerate the burden of sitting in front of console 24 hours a day, every day of the year so that users can press SysRq when something went wrong, how nice it will be if all in-flight allocation requests were printed upon SysRq. show_workqueue_state() is called upon SysRq-t is to some degree useful. In fact, my proposal was such approach before I serialize using a kernel thread (e.g. http://lkml.kernel.org/r/201411231351.HJA17065.VHQSFOJFtLFOMO@I-love.SAKURA.ne.jp which I proposed two years and a half ago). Though, while my proposal was left ignored, I learned that showing only current thread is not sufficient and updated my watchdog to show other threads (e.g. kswapd) using serialization. A patch at http://lkml.kernel.org/r/201505232339.DAB00557.VFFLHMSOJFOOtQ@I-love.SAKURA.ne.jp which I posted two years ago also includes a proposal for handling infinite shrink_inactive_list() problem. After all, this shrink_inactive_list() problem was ignored for three years without getting a chance to even test at linux-next.git. Sigh... I know my proposals might not be best. But you cannot afford showing alternative proposals because you are putting higher priority to other problems. And other developers cannot afford participating because they are not interested in or they do not share knowledge of this problem. My proposals do not constrain future kernels. We can revert my proposals when my proposals became no longer needed. My proposals is meaningful as interim approach, but you never accept approaches which do not match your will (or desire). Even without giving people a chance to test what side effects will crop up, how can your "I really do appreciate your testing" statement get to my heart? My watchdog allows detecting problems which are previously overlooked unless putting unrealistic burden (e.g. stand by 24 hours a day, every day of the year). You ask people to prove that it is a MM problem. But I am dissatisfied that you are letting proposals which helps judging whether it is a MM problem alone. > this way of pushing your patch is really annoying. Please do realize > that repeating the same thing all around will not make a patch more > likely to merge. You have proposed something, nobody has nacked it > so it waits for people to actually find it important enough to justify > the additional code. So please stop this. When will people find time to judge it? We already wasted three years, and knowledge about OOM situation is hardly shared among Linux developers and users, and will unlikely be object of concern. How many years (or decades) will we waste more? MM subsystem will change meanwhile and we will just ignore old kernels. If you do want me to stop bringing watchdog here and there, please do show alternative approach which I can tolerate. If you cannot afford it, please allow me to involve people (e.g. you make calls for joining to my proposals because you are asking me to wait until people find time to judge it). Please do realize that just repeatedly saying "wait patiently" helps nothing. > It is really hard to pursue this half solution when there is no clear > indication it helps in your testing. So could you try to test with only > this patch on top of the current linux-next tree (or Linus tree) and see > if you can reproduce the problem? With this patch on top of next-20170630, I no longer hit this problem. (Of course, this is because this patch eliminates the infinite loop.)
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web