Minchan Kim
71c799f498
mm: add per-zone lru list stat
When I did stress test with hackbench, I got OOM message frequently
which didn't ever happen in zone-lru.
gfp_mask=0x26004c0(GFP_KERNEL|__GFP_REPEAT|__GFP_NOTRACK), order=0
..
..
__alloc_pages_nodemask+0xe52/0xe60
? new_slab+0x39c/0x3b0
new_slab+0x39c/0x3b0
___slab_alloc.constprop.87+0x6da/0x840
? __alloc_skb+0x3c/0x260
? _raw_spin_unlock_irq+0x27/0x60
? trace_hardirqs_on_caller+0xec/0x1b0
? finish_task_switch+0xa6/0x220
? poll_select_copy_remaining+0x140/0x140
__slab_alloc.isra.81.constprop.86+0x40/0x6d
? __alloc_skb+0x3c/0x260
kmem_cache_alloc+0x22c/0x260
? __alloc_skb+0x3c/0x260
__alloc_skb+0x3c/0x260
alloc_skb_with_frags+0x4e/0x1a0
sock_alloc_send_pskb+0x16a/0x1b0
? wait_for_unix_gc+0x31/0x90
? alloc_set_pte+0x2ad/0x310
unix_stream_sendmsg+0x28d/0x340
sock_sendmsg+0x2d/0x40
sock_write_iter+0x6c/0xc0
__vfs_write+0xc0/0x120
vfs_write+0x9b/0x1a0
? __might_fault+0x49/0xa0
SyS_write+0x44/0x90
do_fast_syscall_32+0xa6/0x1e0
sysenter_past_esp+0x45/0x74
Mem-Info:
active_anon:104698 inactive_anon:105791 isolated_anon:192
active_file:433 inactive_file:283 isolated_file:22
unevictable:0 dirty:0 writeback:296 unstable:0
slab_reclaimable:6389 slab_unreclaimable:78927
mapped:474 shmem:0 pagetables:101426 bounce:0
free:10518 free_pcp:334 free_cma:0
Node 0 active_anon:418792kB inactive_anon:423164kB active_file:1732kB inactive_file:1132kB unevictable:0kB isolated(anon):768kB isolated(file):88kB mapped:1896kB dirty:0kB writeback:1184kB shmem:0kB writeback_tmp:0kB unstable:0kB pages_scanned:1478632 all_unreclaimable? yes
DMA free:3304kB min:68kB low:84kB high:100kB present:15992kB managed:15916kB mlocked:0kB slab_reclaimable:0kB slab_unreclaimable:4088kB kernel_stack:0kB pagetables:2480kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
lowmem_reserve[]: 0 809 1965 1965
Normal free:3436kB min:3604kB low:4504kB high:5404kB present:897016kB managed:858460kB mlocked:0kB slab_reclaimable:25556kB slab_unreclaimable:311712kB kernel_stack:164608kB pagetables:30844kB bounce:0kB free_pcp:620kB local_pcp:104kB free_cma:0kB
lowmem_reserve[]: 0 0 9247 9247
HighMem free:33808kB min:512kB low:1796kB high:3080kB present:1183736kB managed:1183736kB mlocked:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:372252kB bounce:0kB free_pcp:428kB local_pcp:72kB free_cma:0kB
lowmem_reserve[]: 0 0 0 0
DMA: 2*4kB (UM) 2*8kB (UM) 0*16kB 1*32kB (U) 1*64kB (U) 2*128kB (UM) 1*256kB (U) 1*512kB (M) 0*1024kB 1*2048kB (U) 0*4096kB = 3192kB
Normal: 33*4kB (MH) 79*8kB (ME) 11*16kB (M) 4*32kB (M) 2*64kB (ME) 2*128kB (EH) 7*256kB (EH) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 3244kB
HighMem: 2590*4kB (UM) 1568*8kB (UM) 491*16kB (UM) 60*32kB (UM) 6*64kB (M) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 33064kB
Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
25121 total pagecache pages
24160 pages in swap cache
Swap cache stats: add 86371, delete 62211, find 42865/60187
Free swap = 4015560kB
Total swap = 4192252kB
524186 pages RAM
295934 pages HighMem/MovableOnly
9658 pages reserved
0 pages cma reserved
The order-0 allocation for normal zone failed while there are a lot of
reclaimable memory(i.e., anonymous memory with free swap). I wanted to
analyze the problem but it was hard because we removed per-zone lru stat
so I couldn't know how many of anonymous memory there are in normal/dma
zone.
When we investigate OOM problem, reclaimable memory count is crucial
stat to find a problem. Without it, it's hard to parse the OOM message
so I believe we should keep it.
With per-zone lru stat,
gfp_mask=0x26004c0(GFP_KERNEL|__GFP_REPEAT|__GFP_NOTRACK), order=0
Mem-Info:
active_anon:101103 inactive_anon:102219 isolated_anon:0
active_file:503 inactive_file:544 isolated_file:0
unevictable:0 dirty:0 writeback:34 unstable:0
slab_reclaimable:6298 slab_unreclaimable:74669
mapped:863 shmem:0 pagetables:100998 bounce:0
free:23573 free_pcp:1861 free_cma:0
Node 0 active_anon:404412kB inactive_anon:409040kB active_file:2012kB inactive_file:2176kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:3452kB dirty:0kB writeback:136kB shmem:0kB writeback_tmp:0kB unstable:0kB pages_scanned:1320845 all_unreclaimable? yes
DMA free:3296kB min:68kB low:84kB high:100kB active_anon:5540kB inactive_anon:0kB active_file:0kB inactive_file:0kB present:15992kB managed:15916kB mlocked:0kB slab_reclaimable:248kB slab_unreclaimable:2628kB kernel_stack:792kB pagetables:2316kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
lowmem_reserve[]: 0 809 1965 1965
Normal free:3600kB min:3604kB low:4504kB high:5404kB active_anon:86304kB inactive_anon:0kB active_file:160kB inactive_file:376kB present:897016kB managed:858524kB mlocked:0kB slab_reclaimable:24944kB slab_unreclaimable:296048kB kernel_stack:163832kB pagetables:35892kB bounce:0kB free_pcp:3076kB local_pcp:656kB free_cma:0kB
lowmem_reserve[]: 0 0 9247 9247
HighMem free:86156kB min:512kB low:1796kB high:3080kB active_anon:312852kB inactive_anon:410024kB active_file:1924kB inactive_file:2012kB present:1183736kB managed:1183736kB mlocked:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:365784kB bounce:0kB free_pcp:3868kB local_pcp:720kB free_cma:0kB
lowmem_reserve[]: 0 0 0 0
DMA: 8*4kB (UM) 8*8kB (UM) 4*16kB (M) 2*32kB (UM) 2*64kB (UM) 1*128kB (M) 3*256kB (UME) 2*512kB (UE) 1*1024kB (E) 0*2048kB 0*4096kB = 3296kB
Normal: 240*4kB (UME) 160*8kB (UME) 23*16kB (ME) 3*32kB (UE) 3*64kB (UME) 2*128kB (ME) 1*256kB (U) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 3408kB
HighMem: 10942*4kB (UM) 3102*8kB (UM) 866*16kB (UM) 76*32kB (UM) 11*64kB (UM) 4*128kB (UM) 1*256kB (M) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 86344kB
Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
54409 total pagecache pages
53215 pages in swap cache
Swap cache stats: add 300982, delete 247765, find 157978/226539
Free swap = 3803244kB
Total swap = 4192252kB
524186 pages RAM
295934 pages HighMem/MovableOnly
9642 pages reserved
0 pages cma reserved
With that, we can see normal zone has a 86M reclaimable memory so we can
know something goes wrong(I will fix the problem in next patch) in
reclaim.
[mgorman@techsingularity.net: rename zone LRU stats in /proc/vmstat]
Link: http://lkml.kernel.org/r/20160725072300.GK10438@techsingularity.net
Link: http://lkml.kernel.org/r/1469110261-7365-2-git-send-email-mgorman@techsingularity.net
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-07-28 16:07:41 -07:00
..
2016-04-05 16:53:41 -07:00
2016-07-25 11:09:19 -07:00
2016-05-09 11:07:28 +02:00
2016-05-30 23:00:22 +02:00
2016-05-09 16:18:37 +02:00
2016-06-25 14:30:42 -07:00
2016-07-02 14:31:34 +09:00
2016-04-05 16:57:15 +02:00
2016-06-28 00:38:53 +02:00
2016-04-14 14:03:25 +02:00
2016-07-02 20:40:15 +01:00
2016-07-15 14:50:53 -07:00
2016-06-13 11:53:53 +01:00
2016-07-20 18:02:08 +01:00
2016-07-19 21:46:33 -07:00
2016-07-25 17:53:40 -07:00
2016-05-26 09:36:10 -07:00
2016-05-10 15:44:18 -07:00
2016-07-18 21:35:23 +02:00
2016-07-03 10:55:07 +02:00
2016-04-25 14:11:10 +01:00
2016-07-04 17:19:22 +05:30
2016-04-21 00:01:21 +02:00
2016-07-27 14:19:25 -07:00
2016-06-28 20:05:41 +02:00
2016-06-30 05:03:36 -04:00
2016-07-20 18:02:03 +01:00
2016-03-17 15:09:34 -07:00
2016-05-18 13:14:02 -07:00
2016-07-25 11:47:52 +01:00
2016-06-15 10:32:25 -04:00
2016-03-17 15:09:34 -07:00
2016-07-04 08:19:21 -07:00
2016-07-27 12:03:20 -07:00
2016-06-20 12:47:09 -07:00
2016-04-09 03:12:58 +02:00
2016-07-18 20:55:38 -04:00
2016-07-08 17:01:14 +03:00
2016-07-07 09:16:20 +02:00
2016-06-29 15:18:47 -07:00
2016-03-15 16:55:16 -07:00
2016-03-15 16:55:16 -07:00
2016-04-04 10:41:08 -07:00
2016-07-28 16:07:41 -07:00
2016-05-04 23:41:14 +02:00
2016-07-26 16:19:19 -07:00
2016-05-13 14:01:43 +02:00
2016-06-07 22:07:09 -04:00
2016-07-26 15:37:51 -07:00
2016-06-13 15:58:21 +02:00
2016-05-09 09:24:02 -07:00
2016-07-26 15:37:51 -07:00
2016-06-07 13:41:38 -06:00
2016-07-08 08:38:49 -06:00
2016-07-26 15:37:51 -07:00
2016-06-07 13:41:38 -06:00
2016-05-19 19:12:14 -07:00
2016-07-25 10:34:11 -07:00
2016-03-25 11:37:57 -04:00
2016-07-26 15:03:07 -07:00
2016-06-09 10:02:47 -06:00
2016-03-22 15:36:02 -07:00
2016-04-20 17:50:06 +08:00
2016-07-08 18:35:42 -03:00
2016-07-13 07:59:30 -03:00
2016-04-25 15:45:14 -04:00
2016-07-01 16:30:38 -04:00
2016-06-01 14:56:57 -07:00
2016-06-28 10:22:02 +02:00
2016-04-19 16:54:26 -07:00
2016-06-28 10:19:35 +02:00
2016-07-26 16:19:19 -07:00
2016-03-22 15:36:02 -07:00
2016-05-19 19:12:14 -07:00
2016-06-14 11:55:14 +02:00
2016-03-25 19:10:03 +01:00
2016-06-25 09:04:48 -07:00
2016-06-25 09:04:48 -07:00
2016-07-10 13:33:02 +02:00
2016-05-03 14:59:30 -07:00
2016-05-06 14:58:25 +02:00
2016-07-21 14:46:08 +02:00
2016-05-06 14:58:25 +02:00
2016-07-21 23:29:38 +02:00
2016-05-06 14:58:22 +02:00
2016-05-19 19:12:14 -07:00
2016-05-13 14:01:59 +02:00
2016-03-22 15:36:02 -07:00
2016-07-18 17:35:46 +08:00
2016-07-26 16:19:19 -07:00
2016-06-20 10:41:51 -07:00
2016-04-12 14:14:21 -07:00
2016-07-26 16:19:19 -07:00
2016-04-15 11:20:32 -07:00
2016-05-03 11:20:07 +09:00
2016-07-20 23:49:49 -04:00
2016-05-20 21:26:15 -07:00
2016-06-05 10:36:01 -07:00
2016-06-07 13:41:38 -06:00
2016-05-31 22:12:43 +05:30
2016-05-09 15:33:29 +02:00
2016-05-09 15:33:29 +02:00
2016-04-12 21:07:06 +05:30
2016-06-13 21:43:05 -06:00
2016-06-13 21:43:05 -06:00
2016-06-13 21:43:08 -06:00
2016-07-08 15:21:37 +02:00
2016-07-20 21:35:12 -06:00
2016-05-27 16:03:22 -07:00
2016-05-17 15:48:12 -04:00
2016-07-01 16:37:06 +02:00
2016-04-18 14:45:08 -04:00
2016-03-29 16:30:56 -04:00
2016-06-21 09:22:39 +10:00
2016-06-29 19:50:43 +09:00
2016-04-15 08:49:47 -07:00
2016-05-02 16:24:49 +02:00
2016-06-17 21:17:40 -07:00
2016-05-02 19:49:28 -04:00
2016-07-24 00:53:32 -04:00
2016-03-17 15:09:34 -07:00
2016-07-26 16:19:19 -07:00
2016-07-26 19:55:54 -07:00
2016-06-01 10:29:39 +02:00
2016-05-07 10:32:33 -07:00
2016-04-19 22:04:53 +02:00
2016-05-19 19:12:14 -07:00
2016-05-17 17:11:27 -07:00
2016-06-27 12:26:08 -07:00
2016-05-10 15:43:09 -04:00
2016-07-26 16:19:19 -07:00
2016-05-20 17:58:30 -07:00
2016-05-28 15:48:31 -04:00
2016-03-17 15:09:34 -07:00
2016-07-26 16:19:19 -07:00
2016-05-20 17:58:30 -07:00
2016-05-19 19:12:14 -07:00
2016-05-20 17:58:30 -07:00
2016-04-30 14:01:37 -07:00
2016-05-04 22:39:17 +02:00
2016-07-22 09:07:02 +02:00
2016-07-19 05:57:23 +02:00
2016-06-18 22:11:39 -07:00
2016-06-30 12:06:20 +02:00
2016-07-08 13:23:12 +02:00
2016-05-03 16:00:54 -04:00
2016-05-01 09:23:52 -04:00
2016-06-10 23:22:55 -07:00
2016-06-24 17:07:33 -07:00
2016-07-13 17:27:24 -07:00
2016-07-04 12:25:14 +02:00
2016-05-03 18:23:02 +01:00
2016-05-03 18:23:02 +01:00
2016-03-22 15:36:02 -07:00
2016-06-21 09:38:45 +10:00
2016-05-09 19:39:17 +02:00
2016-05-16 15:12:02 -05:00
2016-04-20 15:42:24 -04:00
2016-07-27 10:24:38 -05:00
2016-06-09 23:34:42 -07:00
2016-07-04 12:26:05 +02:00
2016-05-11 22:37:54 +02:00
2016-05-02 13:42:51 +02:00
2016-07-04 12:26:05 +02:00
2016-06-17 20:47:11 -07:00
2016-05-16 11:14:29 -04:00
2016-06-30 11:40:54 -04:00
2016-06-24 08:23:16 +02:00
2016-05-20 17:58:30 -07:00
2016-06-24 17:23:52 -07:00
2016-03-22 15:36:02 -07:00
2016-07-06 10:34:48 +01:00
2016-06-15 16:00:05 -07:00
2016-05-20 21:26:15 -07:00
2016-05-23 17:04:14 -07:00
2016-04-11 22:44:15 +01:00
2016-04-11 22:44:15 +01:00
2016-03-22 15:36:02 -07:00
2016-07-26 16:19:19 -07:00
2016-07-26 16:19:19 -07:00
2016-05-25 16:12:05 +02:00
2016-07-18 08:46:09 +02:00
2016-06-20 09:43:33 +02:00
2016-06-27 08:58:42 +02:00
2016-07-18 20:55:38 -04:00
2016-04-28 16:23:16 -07:00
2016-07-07 08:51:52 -06:00
2016-03-17 15:09:34 -07:00
2016-07-07 10:35:07 +02:00
2016-05-17 12:06:35 +02:00
2016-05-16 14:47:16 -07:00
2016-05-19 09:21:36 -07:00
2016-05-03 15:07:35 -07:00
2016-06-10 23:24:53 -07:00
2016-04-11 21:15:48 -04:00
2016-07-26 16:19:19 -07:00
2016-07-28 16:07:41 -07:00
2016-07-26 16:19:19 -07:00
2016-03-17 13:47:50 -07:00
2016-05-19 19:12:14 -07:00
2016-05-19 19:12:14 -07:00
2016-07-15 11:53:02 -07:00
2016-07-26 16:19:19 -07:00
2016-03-20 16:47:13 -04:00
2016-07-28 16:07:41 -07:00
2016-07-28 16:07:41 -07:00
2016-07-28 16:07:41 -07:00
2016-07-26 16:19:19 -07:00
2016-04-28 11:44:19 +02:00
2016-07-28 16:07:41 -07:00
2016-06-26 17:14:03 -07:00
2016-04-01 15:00:10 +02:00
2016-07-01 23:45:18 +08:00
2016-07-16 20:19:43 -07:00
2016-07-16 20:19:43 -07:00
2016-07-04 12:25:14 +02:00
2016-06-05 10:36:01 -07:00
2016-04-22 12:26:23 -07:00
2016-07-01 05:32:17 -04:00
2016-06-03 19:37:21 -04:00
2016-07-24 23:11:59 -07:00
2016-05-17 15:48:12 -04:00
2016-05-17 15:47:55 -04:00
2016-05-17 15:05:23 -07:00
2016-04-04 10:41:08 -07:00
2016-05-26 10:33:33 -07:00
2016-05-23 17:04:14 -07:00
2016-04-25 15:09:11 -04:00
2016-07-10 20:58:36 +02:00
2016-05-19 19:12:14 -07:00
2016-03-21 19:30:06 -04:00
2016-07-08 08:38:49 -06:00
2016-07-05 11:28:18 -06:00
2016-06-25 07:42:55 -07:00
2016-05-01 14:01:00 -07:00
2016-05-12 07:07:42 -05:00
2016-07-06 10:34:46 +01:00
2016-05-02 09:00:56 -05:00
2016-05-09 15:33:29 +02:00
2016-07-16 21:32:58 -07:00
2016-06-08 08:18:06 -05:00
2016-07-08 18:14:03 -03:00
2016-07-07 15:41:13 +02:00
2016-04-15 11:52:28 +03:00
2016-04-26 10:19:38 +05:30
2016-07-28 16:07:41 -07:00
2016-05-19 19:12:14 -07:00
2016-07-26 16:19:19 -07:00
2016-06-03 15:06:22 -07:00
2016-07-26 16:19:19 -07:00
2016-05-19 19:12:14 -07:00
2016-03-17 15:09:34 -07:00
2016-07-26 16:19:19 -07:00
2016-07-26 16:19:19 -07:00
2016-04-08 11:08:12 -05:00
2016-05-19 13:10:54 -07:00
2016-05-03 10:35:49 -05:00
2016-06-03 12:06:11 +02:00
2016-05-20 17:58:30 -07:00
2016-07-27 12:03:20 -07:00
2016-05-10 15:06:19 -04:00
2016-04-09 03:10:50 +02:00
2016-06-28 00:42:10 +02:00
2016-06-29 02:15:19 +02:00
2016-05-05 01:38:44 +02:00
2016-04-22 01:32:37 +02:00
2016-04-22 01:32:37 +02:00
2016-04-14 09:01:47 -06:00
2016-04-22 10:29:05 +02:00
2016-05-19 19:12:14 -07:00
2016-07-11 13:48:02 -04:00
2016-07-01 22:44:34 +02:00
2016-07-08 11:33:18 +02:00
2016-04-09 03:10:50 +02:00
2016-04-25 23:47:44 +02:00
2016-06-02 10:59:31 -07:00
2016-07-01 05:32:17 -04:00
2016-06-23 18:37:05 +02:00
2016-03-17 15:09:34 -07:00
2016-07-26 16:19:19 -07:00
2016-06-08 12:41:20 -07:00
2016-07-06 10:51:14 +01:00
2016-07-06 10:51:14 +01:00
2016-04-14 21:14:03 -04:00
2016-04-23 18:51:33 -04:00
2016-07-27 12:03:20 -07:00
2016-03-31 13:37:37 -07:00
2016-03-31 13:37:37 -07:00
2016-07-15 13:44:47 +01:00
2016-05-12 15:50:19 -07:00
2016-05-31 22:12:43 +05:30
2016-03-30 15:42:03 +02:00
2016-06-29 21:24:53 +02:00
2016-04-05 10:56:32 +02:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-07-26 16:19:19 -07:00
2016-05-06 11:09:00 -07:00
2016-06-15 14:08:34 -07:00
2016-04-13 10:42:20 +02:00
2016-06-08 15:16:42 +02:00
2016-06-22 09:10:00 +01:00
2016-04-15 16:53:14 -04:00
2016-07-28 16:07:41 -07:00
2016-05-31 11:59:06 -07:00
2016-05-17 14:41:03 -07:00
2016-04-30 09:26:55 -07:00
2016-04-14 12:56:09 -07:00
2016-06-03 08:37:25 +02:00
2016-06-25 14:30:42 -07:00
2016-06-25 14:31:04 -07:00
2016-07-13 09:24:51 +02:00
2016-07-26 16:19:19 -07:00
2016-05-23 17:04:14 -07:00
2016-07-01 05:32:17 -04:00
2016-07-06 10:35:22 -07:00
2016-07-26 16:19:19 -07:00
2016-07-26 16:19:19 -07:00
2016-07-26 16:19:19 -07:00
2016-06-28 09:08:51 -04:00
2016-05-08 23:46:14 -04:00
2016-06-14 11:55:15 +02:00
2016-03-25 16:37:42 -07:00
2016-05-03 14:59:30 -07:00
2016-06-28 08:54:23 -04:00
2016-04-21 10:47:26 +10:00
2016-05-19 19:12:14 -07:00
2016-05-28 15:42:50 -04:00
2016-06-15 01:26:04 +02:00
2016-07-28 16:07:41 -07:00
2016-04-29 17:37:10 -07:00
2016-05-20 17:58:30 -07:00
2016-06-01 22:25:48 +08:00
2016-07-17 19:59:26 +02:00
2016-03-17 15:09:34 -07:00
2016-05-19 19:12:14 -07:00
2016-06-20 12:47:15 -07:00
2016-06-01 21:13:43 +02:00
2016-07-07 10:35:09 +02:00
2016-07-28 16:07:41 -07:00
2016-06-14 16:02:16 -07:00
2016-05-18 18:55:19 -07:00
2016-04-26 15:47:32 -07:00
2016-05-20 20:57:27 -07:00
2016-05-23 17:04:14 -07:00
2016-05-04 16:55:11 -04:00
2016-04-07 16:53:29 -04:00
2016-04-08 19:46:28 -04:00
2016-04-13 12:02:28 -07:00
2016-05-03 14:32:07 -07:00
2016-07-26 16:19:19 -07:00
2016-05-20 17:58:30 -07:00
2016-04-06 16:14:24 +01:00
2016-06-10 23:03:55 -07:00
2016-07-28 16:07:41 -07:00
2016-05-23 11:48:48 -07:00
2016-07-28 16:07:41 -07:00
2016-06-25 09:04:48 -07:00
2016-07-14 10:42:35 +02:00
2016-03-16 21:11:19 +01:00
2016-07-28 16:07:41 -07:00
2016-05-27 20:09:16 -04:00
2016-05-20 17:58:30 -07:00