* + memcg-oom-check-memcg-margin-for-parallel-oom.patch added to -mm tree
From: Andrew Morton @ 2020-07-16 23:28 UTC (permalink / raw)
To: chris, hannes, laoar.shao, mhocko, mhocko, mm-commits,
penguin-kernel, rientjes
In-Reply-To: <20200703151445.b6a0cfee402c7c5c4651f1b1@linux-foundation.org>
The patch titled
Subject: memcg, oom: check memcg margin for parallel oom
has been added to the -mm tree. Its filename is
memcg-oom-check-memcg-margin-for-parallel-oom.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/memcg-oom-check-memcg-margin-for-parallel-oom.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/memcg-oom-check-memcg-margin-for-parallel-oom.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Yafang Shao <laoar.shao@gmail.com>
Subject: memcg, oom: check memcg margin for parallel oom
Memcg oom killer invocation is synchronized by the global oom_lock and
tasks are sleeping on the lock while somebody is selecting the victim or
potentially race with the oom_reaper is releasing the victim's memory.
This can result in a pointless oom killer invocation because a waiter
might be racing with the oom_reaper
P1 oom_reaper P2
oom_reap_task mutex_lock(oom_lock)
out_of_memory # no victim because we have one already
__oom_reap_task_mm mute_unlock(oom_lock)
mutex_lock(oom_lock)
set MMF_OOM_SKIP
select_bad_process
# finds a new victim
The page allocator prevents from this race by trying to allocate after the
lock can be acquired (in __alloc_pages_may_oom) which acts as a last
minute check. Moreover page allocator simply doesn't block on the
oom_lock and simply retries the whole reclaim process.
Memcg oom killer should do the last minute check as well. Call
mem_cgroup_margin to do that. Trylock on the oom_lock could be done as
well but this doesn't seem to be necessary at this stage.
[mhocko@kernel.org: commit log]
Link: http://lkml.kernel.org/r/1594735034-19190-1-git-send-email-laoar.shao@gmail.com
Suggested-by: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Chris Down <chris@chrisdown.name>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/memcontrol.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/mm/memcontrol.c~memcg-oom-check-memcg-margin-for-parallel-oom
+++ a/mm/memcontrol.c
@@ -1665,15 +1665,21 @@ static bool mem_cgroup_out_of_memory(str
.gfp_mask = gfp_mask,
.order = order,
};
- bool ret;
+ bool ret = true;
if (mutex_lock_killable(&oom_lock))
return true;
+
+ if (mem_cgroup_margin(memcg) >= (1 << order))
+ goto unlock;
+
/*
* A few threads which were not waiting at mutex_lock_killable() can
* fail to bail out. Therefore, check again after holding oom_lock.
*/
ret = should_force_charge() || out_of_memory(&oc);
+
+unlock:
mutex_unlock(&oom_lock);
return ret;
}
_
Patches currently in -mm which might be from laoar.shao@gmail.com are
mm-memcg-avoid-stale-protection-values-when-cgroup-is-above-protection.patch
memcg-oom-check-memcg-margin-for-parallel-oom.patch
mm-oom-make-the-calculation-of-oom-badness-more-accurate.patch
mm-oom-make-the-calculation-of-oom-badness-more-accurate-v3.patch
^ permalink raw reply
* Re: wm8962: error at soc_component_read_no_lock
From: Kuninori Morimoto @ 2020-07-16 23:26 UTC (permalink / raw)
To: Fabio Estevam
Cc: Nicolin Chen, S.j. Wang, Mark Brown, Charles Keepax, Linux-ALSA
In-Reply-To: <CAOMZO5Bhhcmm6ex0nP6MnYq0Uf8EMYCMMFOMav-fCrVJvOY+vQ@mail.gmail.com>
Hi Fabio
> wm8962 0-001a: ASoC: error at soc_component_read_no_lock on wm8962.0-001a: -16
> wm8962 0-001a: ASoC: error at soc_component_read_no_lock on wm8962.0-001a: -16
> input: WM8962 Beep Generator as
> /devices/platform/soc/2100000.bus/21a0000.i2c/i2c-0/0-001a/input/input3
> wm8962 0-001a: ASoC: error at soc_component_read_no_lock on wm8962.0-001a: -16
> wm8962 0-001a: ASoC: error at soc_component_read_no_lock on wm8962.0-001a: -16
>
> Despite these errors, the codec probes fine.
>
> What is the correct way to avoid such errors?
New component function indicates above when error.
It seems yours couldn't read because of busy.
I think it had been happened, but didn't indicate it before.
Thank you for your help !!
Best regards
---
Kuninori Morimoto
^ permalink raw reply
* Re: [PATCH] linux: arm: vdso: nullpatch vdso_clock_gettime64 for non-virtual timers
From: Alex Bee @ 2020-07-16 23:25 UTC (permalink / raw)
To: Robin Murphy, linux-arch
Cc: Florian Fainelli, Russell King, Daniel Jordan, linux-arm-kernel,
Vincenzo Frascino, Vlastimil Babka
In-Reply-To: <ac44a5a3-ca35-cd0a-f823-4b814c01c498@arm.com>
Hi Robin,
Am 16.07.20 um 20:46 schrieb Robin Murphy:
> Hi Alex,
>
> On 2020-07-16 16:07, Alex Bee wrote:
>> Along with commit commit 74d06efb9c2f ("ARM: 8932/1: Add clock_gettime64
>> entry point") clock_gettime64 was added for ARM platform to solve the
>> y2k38 problem on 32-bit platforms. glibc from version 2.31 onwards
>> started using this vdso-call on ARM platforms.
>> However it was (probably) forgotten to "nullpatch" this call, when no
>> reliable timer source is available, for example when
>> "arm,cpu-registers-not-fw-configured" is defined in devicetree for
>> "arm,armv7-timer".
>> This results in erratic time jumps whenever "gettimeofday" gets called,
>> since the (non-working) vdso-call will be used instead of a syscall.
>>
>> This patch adds clock_gettime64 to get nullpatched as well. It has been
>> verified to work and solve this issue on Rockchip RK322x, RK3288 and
>> RPi4 (32-bit kernel build) platforms.
>
> FYI, a version of this patch was already submitted, and is just
> waiting for Russell to apply it:
>
> https://www.armlinux.org.uk/developer/patches/viewpatch.php?id=8987/1
>
> Robin.
OK - couldn't find this before. You can drop my patch than.
>
>> Signed-off-by: Alex Bee <knaerzche@gmail.com>
>> ---
>> arch/arm/kernel/vdso.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/kernel/vdso.c b/arch/arm/kernel/vdso.c
>> index 6bfdca4769a7..fddd08a6e063 100644
>> --- a/arch/arm/kernel/vdso.c
>> +++ b/arch/arm/kernel/vdso.c
>> @@ -184,6 +184,7 @@ static void __init patch_vdso(void *ehdr)
>> if (!cntvct_ok) {
>> vdso_nullpatch_one(&einfo, "__vdso_gettimeofday");
>> vdso_nullpatch_one(&einfo, "__vdso_clock_gettime");
>> + vdso_nullpatch_one(&einfo, "__vdso_clock_gettime64");
>> }
>> }
>>
Regards,
Alex
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915: Move WaDisableDopClockGating:skl to skl_init_clock_gating()
From: Patchwork @ 2020-07-16 23:27 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
In-Reply-To: <20200716190426.17047-1-ville.syrjala@linux.intel.com>
[-- Attachment #1.1: Type: text/plain, Size: 16312 bytes --]
== Series Details ==
Series: series starting with [1/2] drm/i915: Move WaDisableDopClockGating:skl to skl_init_clock_gating()
URL : https://patchwork.freedesktop.org/series/79563/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8757_full -> Patchwork_18194_full
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with Patchwork_18194_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_18194_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_18194_full:
### IGT changes ###
#### Warnings ####
* igt@kms_content_protection@atomic:
- shard-kbl: [TIMEOUT][1] ([i915#1319] / [i915#1958] / [i915#2119]) -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl6/igt@kms_content_protection@atomic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-kbl7/igt@kms_content_protection@atomic.html
Known issues
------------
Here are the changes found in Patchwork_18194_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@close-race:
- shard-skl: [PASS][3] -> [DMESG-WARN][4] ([i915#1982]) +14 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl2/igt@gem_busy@close-race.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl2/igt@gem_busy@close-race.html
* igt@gem_exec_whisper@basic-contexts-forked-all:
- shard-glk: [PASS][5] -> [DMESG-WARN][6] ([i915#118] / [i915#95]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-glk9/igt@gem_exec_whisper@basic-contexts-forked-all.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-glk7/igt@gem_exec_whisper@basic-contexts-forked-all.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][7] -> [FAIL][8] ([i915#454])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_rpm@cursor-dpms:
- shard-kbl: [PASS][9] -> [DMESG-WARN][10] ([i915#165])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl6/igt@i915_pm_rpm@cursor-dpms.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-kbl2/igt@i915_pm_rpm@cursor-dpms.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-180:
- shard-glk: [PASS][11] -> [DMESG-FAIL][12] ([i915#118] / [i915#95])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-glk5/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-glk8/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][13] -> [DMESG-WARN][14] ([i915#1982]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-glk8/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@ab-hdmi-a1-hdmi-a2.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-glk1/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-suspend@c-dp1:
- shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +14 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl7/igt@kms_flip@flip-vs-suspend@c-dp1.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-kbl2/igt@kms_flip@flip-vs-suspend@c-dp1.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
- shard-tglb: [PASS][17] -> [DMESG-WARN][18] ([i915#1982]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-skl: [PASS][19] -> [FAIL][20] ([i915#1188])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl3/igt@kms_hdr@bpc-switch-dpms.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl8/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][21] -> [FAIL][22] ([fdo#108145] / [i915#265]) +1 similar issue
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl3/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109642] / [fdo#111068])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-iclb6/igt@kms_psr2_su@frontbuffer.html
* igt@kms_psr@psr2_cursor_mmap_cpu:
- shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441]) +2 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-iclb7/igt@kms_psr@psr2_cursor_mmap_cpu.html
* igt@kms_vblank@pipe-c-wait-busy:
- shard-kbl: [PASS][27] -> [DMESG-WARN][28] ([i915#1982])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl2/igt@kms_vblank@pipe-c-wait-busy.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-kbl3/igt@kms_vblank@pipe-c-wait-busy.html
* igt@perf@polling-small-buf:
- shard-skl: [PASS][29] -> [FAIL][30] ([i915#1722])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl5/igt@perf@polling-small-buf.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl5/igt@perf@polling-small-buf.html
* igt@perf_pmu@semaphore-busy@rcs0:
- shard-kbl: [PASS][31] -> [FAIL][32] ([i915#1820])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl7/igt@perf_pmu@semaphore-busy@rcs0.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-kbl4/igt@perf_pmu@semaphore-busy@rcs0.html
#### Possible fixes ####
* igt@gem_ctx_persistence@processes:
- shard-skl: [FAIL][33] ([i915#1528]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl1/igt@gem_ctx_persistence@processes.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl8/igt@gem_ctx_persistence@processes.html
* igt@gem_exec_reloc@basic-concurrent0:
- shard-glk: [FAIL][35] ([i915#1930]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-glk8/igt@gem_exec_reloc@basic-concurrent0.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-glk1/igt@gem_exec_reloc@basic-concurrent0.html
* igt@gem_exec_whisper@basic-queues-all:
- shard-glk: [DMESG-WARN][37] ([i915#118] / [i915#95]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-glk3/igt@gem_exec_whisper@basic-queues-all.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-glk5/igt@gem_exec_whisper@basic-queues-all.html
* igt@gem_userptr_blits@invalid-mmap-offset-unsync@gtt:
- shard-tglb: [INCOMPLETE][39] ([i915#2119] / [i915#2149]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb7/igt@gem_userptr_blits@invalid-mmap-offset-unsync@gtt.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-tglb6/igt@gem_userptr_blits@invalid-mmap-offset-unsync@gtt.html
* igt@gem_workarounds@suspend-resume-fd:
- shard-skl: [INCOMPLETE][41] -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl10/igt@gem_workarounds@suspend-resume-fd.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl6/igt@gem_workarounds@suspend-resume-fd.html
* igt@i915_module_load@reload:
- shard-tglb: [DMESG-WARN][43] ([i915#402]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb6/igt@i915_module_load@reload.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-tglb3/igt@i915_module_load@reload.html
* igt@kms_color@pipe-c-ctm-0-25:
- shard-skl: [DMESG-WARN][45] ([i915#1982]) -> [PASS][46] +6 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl1/igt@kms_color@pipe-c-ctm-0-25.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl5/igt@kms_color@pipe-c-ctm-0-25.html
* igt@kms_cursor_crc@pipe-b-cursor-64x64-onscreen:
- shard-skl: [FAIL][47] ([i915#54]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl1/igt@kms_cursor_crc@pipe-b-cursor-64x64-onscreen.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl5/igt@kms_cursor_crc@pipe-b-cursor-64x64-onscreen.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-skl: [FAIL][49] ([i915#79]) -> [PASS][50] +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-edp1:
- shard-skl: [INCOMPLETE][51] ([i915#198]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl9/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl10/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-kbl: [DMESG-WARN][53] ([i915#180]) -> [PASS][54] +7 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-suspend.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_hdr@bpc-switch:
- shard-skl: [FAIL][55] ([i915#1188]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl3/igt@kms_hdr@bpc-switch.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-skl8/igt@kms_hdr@bpc-switch.html
* igt@kms_psr2_su@page_flip:
- shard-iclb: [SKIP][57] ([fdo#109642] / [fdo#111068]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb6/igt@kms_psr2_su@page_flip.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-iclb2/igt@kms_psr2_su@page_flip.html
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [SKIP][59] ([fdo#109441]) -> [PASS][60] +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb6/igt@kms_psr@psr2_sprite_mmap_gtt.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
* igt@kms_vblank@pipe-c-wait-busy-hang:
- shard-apl: [DMESG-WARN][61] ([i915#1635] / [i915#1982]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl1/igt@kms_vblank@pipe-c-wait-busy-hang.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-apl1/igt@kms_vblank@pipe-c-wait-busy-hang.html
#### Warnings ####
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: [SKIP][63] ([fdo#109349]) -> [DMESG-WARN][64] ([i915#1226])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-apl: [DMESG-FAIL][65] ([fdo#108145] / [i915#1635] / [i915#1982]) -> [FAIL][66] ([fdo#108145] / [i915#1635] / [i915#265])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-apl8/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
* igt@runner@aborted:
- shard-apl: ([FAIL][67], [FAIL][68], [FAIL][69], [FAIL][70]) ([i915#1610] / [i915#1635] / [i915#2110]) -> [FAIL][71] ([i915#1635] / [i915#2110])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl1/igt@runner@aborted.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl7/igt@runner@aborted.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl8/igt@runner@aborted.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl3/igt@runner@aborted.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/shard-apl2/igt@runner@aborted.html
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#1528]: https://gitlab.freedesktop.org/drm/intel/issues/1528
[i915#1610]: https://gitlab.freedesktop.org/drm/intel/issues/1610
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#165]: https://gitlab.freedesktop.org/drm/intel/issues/165
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1820]: https://gitlab.freedesktop.org/drm/intel/issues/1820
[i915#1930]: https://gitlab.freedesktop.org/drm/intel/issues/1930
[i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2110]: https://gitlab.freedesktop.org/drm/intel/issues/2110
[i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
[i915#2149]: https://gitlab.freedesktop.org/drm/intel/issues/2149
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_8757 -> Patchwork_18194
CI-20190529: 20190529
CI_DRM_8757: 6802049b80a49f5f45c2bc2dd3e6d189204dc2bb @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5738: bc8b56fe177af34fbde7b96f1f66614a0014c6ef @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_18194: 82d36900bdea769bf657b7ad3cdf790f47bbfa68 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18194/index.html
[-- Attachment #1.2: Type: text/html, Size: 19327 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply
* [Bug 208591] connecting to bluetooth Samsung earbuds freezes the system (kubuntu 20.04) with 5.8rc kernels. Hard reset needed.
From: bugzilla-daemon @ 2020-07-16 23:27 UTC (permalink / raw)
To: linux-bluetooth
In-Reply-To: <bug-208591-62941@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=208591
--- Comment #3 from Marian Klein (mkleinsoft@gmail.com) ---
For completeness.
1) I could connect to my phone Galaxy A50 5G via bluetooth before trying to
connect to Earbuds. (see attached pic)
2) Bluetooth Widget in plasma shows Ear buds connected, but system is frozen
anyway.
3) I can move cursor with touchpad, but it does not react to clicks after
attempted connect. The only way to get out of this situation is to restart
laptop.
--
You are receiving this mail because:
You are the assignee for the bug.
^ permalink raw reply
* [Intel-gfx] [PATCH 2/2] drm/i915/display/dp: Hacks for testing link training fail errors
From: Manasi Navare @ 2020-07-16 23:28 UTC (permalink / raw)
To: intel-gfx
In-Reply-To: <20200716232900.28414-1-manasi.d.navare@intel.com>
Keep the link rate const at 2.7 Gpbs, lane count =4 and do not
fallback on link training. See if kms_atomic_transition test passes
in constant configuration
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp.c | 7 +++++--
drivers/gpu/drm/i915/display/intel_dp_link_training.c | 6 +++---
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index d6295eb20b63..070d8f83a28a 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -425,6 +425,9 @@ static void intel_dp_set_common_rates(struct intel_dp *intel_dp)
intel_dp->common_rates[0] = 162000;
intel_dp->num_common_rates = 1;
}
+ /* Hack for VLK-7806 testing */
+ intel_dp->common_rates[0] = 270000;
+ intel_dp->num_common_rates = 1;
}
static bool intel_dp_link_params_valid(struct intel_dp *intel_dp, int link_rate,
@@ -2284,8 +2287,8 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
limits.min_clock = 0;
limits.max_clock = common_len - 1;
- limits.min_lane_count = 1;
- limits.max_lane_count = intel_dp_max_lane_count(intel_dp);
+ limits.min_lane_count = 4;
+ limits.max_lane_count = 4;/*intel_dp_max_lane_count(intel_dp);*/
limits.min_bpp = intel_dp_min_bpp(pipe_config);
limits.max_bpp = intel_dp_compute_bpp(intel_dp, pipe_config);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index f2c8b56be9ea..0653ace2b62a 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -415,12 +415,12 @@ intel_dp_start_link_train(struct intel_dp *intel_dp)
drm_dbg_kms(&dp_to_i915(intel_dp)->drm,
"Link Training failed with HOBL active, not enabling it from now on");
intel_dp->hobl_failed = true;
- } else if (intel_dp_get_link_train_fallback_values(intel_dp,
+ }/* else if (intel_dp_get_link_train_fallback_values(intel_dp,
intel_dp->link_rate,
intel_dp->lane_count)) {
return;
- }
+ }*/
/* Schedule a Hotplug Uevent to userspace to start modeset */
- schedule_work(&intel_connector->modeset_retry_work);
+ //schedule_work(&intel_connector->modeset_retry_work);
}
--
2.19.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related
* Re: [RFC PATCH 4/7] x86: use exit_lazy_tlb rather than membarrier_mm_sync_core_before_usermode
From: Nicholas Piggin @ 2020-07-16 23:26 UTC (permalink / raw)
To: peterz
Cc: Anton Blanchard, Arnd Bergmann, linux-arch, linux-kernel,
linux-mm, linuxppc-dev, Andy Lutomirski, Andy Lutomirski,
Mathieu Desnoyers, x86
In-Reply-To: <20200716110038.GA119549@hirez.programming.kicks-ass.net>
Excerpts from peterz@infradead.org's message of July 16, 2020 9:00 pm:
> On Thu, Jul 16, 2020 at 08:03:36PM +1000, Nicholas Piggin wrote:
>> Excerpts from Peter Zijlstra's message of July 16, 2020 6:50 pm:
>> > On Wed, Jul 15, 2020 at 10:18:20PM -0700, Andy Lutomirski wrote:
>> >> > On Jul 15, 2020, at 9:15 PM, Nicholas Piggin <npiggin@gmail.com> wrote:
>
>> >> But I’m wondering if all this deferred sync stuff is wrong. In the
>> >> brave new world of io_uring and such, perhaps kernel access matter
>> >> too. Heck, even:
>> >
>> > IIRC the membarrier SYNC_CORE use-case is about user-space
>> > self-modifying code.
>> >
>> > Userspace re-uses a text address and needs to SYNC_CORE before it can be
>> > sure the old text is forgotten. Nothing the kernel does matters there.
>> >
>> > I suppose the manpage could be more clear there.
>>
>> True, but memory ordering of kernel stores from kernel threads for
>> regular mem barrier is the concern here.
>>
>> Does io_uring update completion queue from kernel thread or interrupt,
>> for example? If it does, then membarrier will not order such stores
>> with user memory accesses.
>
> So we're talking about regular membarrier() then? Not the SYNC_CORE
> variant per-se.
Well, both but Andy in this case was wondering about kernel writes
vs user.
>
> Even there, I'll argue we don't care, but perhaps Mathieu has a
> different opinion. All we care about is that all other threads (or CPUs
> for GLOBAL) observe an smp_mb() before it returns.
>
> Any serialization against whatever those other threads/CPUs are running
> at the instant of the syscall is external to the syscall, we make no
> gauarantees about that. That is, we can fundamentally not say what
> another CPU is executing concurrently. Nor should we want to.
>
> So if you feel that your membarrier() ought to serialize against remote
> execution, you need to arrange a quiecent state on the remote side
> yourself.
>
> Now, normally membarrier() is used to implement userspace RCU like
> things, and there all that matters is that the remote CPUs observe the
> beginngin of the new grace-period, ie counter flip, and we observe their
> read-side critical sections, or smething like that, it's been a while
> since I looked at all that.
>
> It's always been the case that concurrent syscalls could change user
> memory, io_uring doesn't change that, it just makes it even less well
> defined when that would happen. If you want to serialize against that,
> you need to arrange that externally.
membarrier does replace barrier instructions on remote CPUs, which do
order accesses performed by the kernel on the user address space. So
membarrier should too I guess.
Normal process context accesses like read(2) will do so because they
don't get filtered out from IPIs, but kernel threads using the mm may
not.
Thanks,
Nick
^ permalink raw reply
* [Intel-gfx] [PATCH 1/2] drm/i915/dp: HAX Try the bspec value for CLKTOP2_CORECLKCTL
From: Manasi Navare @ 2020-07-16 23:28 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
---
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 4 ++++
drivers/gpu/drm/i915/i915_reg.h | 1 +
2 files changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index aeb6ee395cce..229c942aa7d7 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -3142,6 +3142,10 @@ static bool icl_mg_pll_find_divisors(int clock_khz, bool is_dp, bool use_ssc,
state->mg_clktop2_coreclkctl1 =
MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO(a_divratio);
+ if (is_dkl && !(a_divratio & 1))
+ state->mg_clktop2_coreclkctl1 |=
+ MG_CLKTOP2_CORECLKCTL1_A_DIVRETIMER_EN;
+
state->mg_clktop2_hsclkctl =
MG_CLKTOP2_HSCLKCTL_TLINEDRV_CLKSEL(tlinedrv) |
MG_CLKTOP2_HSCLKCTL_CORE_INPUTSEL(inputsel) |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index b9607ac3620d..c11aa7c4d708 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -10323,6 +10323,7 @@ enum skl_power_gate {
#define MG_CLKTOP2_CORECLKCTL1_B_DIVRATIO_MASK (0xff << 16)
#define MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO(x) ((x) << 8)
#define MG_CLKTOP2_CORECLKCTL1_A_DIVRATIO_MASK (0xff << 8)
+#define MG_CLKTOP2_CORECLKCTL1_A_DIVRETIMER_EN (1 << 1)
#define MG_CLKTOP2_CORECLKCTL1(tc_port) _MMIO_PORT((tc_port), \
_MG_CLKTOP2_CORECLKCTL1_PORT1, \
_MG_CLKTOP2_CORECLKCTL1_PORT2)
--
2.19.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related
* Re: [PATCH] linux: arm: vdso: nullpatch vdso_clock_gettime64 for non-virtual timers
From: Alex Bee @ 2020-07-16 23:25 UTC (permalink / raw)
To: Robin Murphy, linux-arch
Cc: Florian Fainelli, Daniel Jordan, linux-arm-kernel, Russell King,
Vincenzo Frascino, Vlastimil Babka
In-Reply-To: <ac44a5a3-ca35-cd0a-f823-4b814c01c498@arm.com>
Hi Robin,
Am 16.07.20 um 20:46 schrieb Robin Murphy:
> Hi Alex,
>
> On 2020-07-16 16:07, Alex Bee wrote:
>> Along with commit commit 74d06efb9c2f ("ARM: 8932/1: Add clock_gettime64
>> entry point") clock_gettime64 was added for ARM platform to solve the
>> y2k38 problem on 32-bit platforms. glibc from version 2.31 onwards
>> started using this vdso-call on ARM platforms.
>> However it was (probably) forgotten to "nullpatch" this call, when no
>> reliable timer source is available, for example when
>> "arm,cpu-registers-not-fw-configured" is defined in devicetree for
>> "arm,armv7-timer".
>> This results in erratic time jumps whenever "gettimeofday" gets called,
>> since the (non-working) vdso-call will be used instead of a syscall.
>>
>> This patch adds clock_gettime64 to get nullpatched as well. It has been
>> verified to work and solve this issue on Rockchip RK322x, RK3288 and
>> RPi4 (32-bit kernel build) platforms.
>
> FYI, a version of this patch was already submitted, and is just
> waiting for Russell to apply it:
>
> https://www.armlinux.org.uk/developer/patches/viewpatch.php?id=8987/1
>
> Robin.
OK - couldn't find this before. You can drop my patch than.
>
>> Signed-off-by: Alex Bee <knaerzche@gmail.com>
>> ---
>> arch/arm/kernel/vdso.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/kernel/vdso.c b/arch/arm/kernel/vdso.c
>> index 6bfdca4769a7..fddd08a6e063 100644
>> --- a/arch/arm/kernel/vdso.c
>> +++ b/arch/arm/kernel/vdso.c
>> @@ -184,6 +184,7 @@ static void __init patch_vdso(void *ehdr)
>> if (!cntvct_ok) {
>> vdso_nullpatch_one(&einfo, "__vdso_gettimeofday");
>> vdso_nullpatch_one(&einfo, "__vdso_clock_gettime");
>> + vdso_nullpatch_one(&einfo, "__vdso_clock_gettime64");
>> }
>> }
>>
Regards,
Alex
^ permalink raw reply
* Re: Compressing packed-refs
From: Junio C Hamano @ 2020-07-16 22:27 UTC (permalink / raw)
To: Konstantin Ryabitsev; +Cc: git
In-Reply-To: <20200716221026.dgduvxful32gkhwy@chatter.i7.local>
Konstantin Ryabitsev <konstantin@linuxfoundation.org> writes:
> I know repos with too many refs is a corner-case for most people, but
> it's looming large in my world, so I'm wondering if it makes sense to
> compress the packed-refs file when "git pack-refs" is performed?
I think the reftable is the longer term direction, but let's see if
there is easy enough optimization opportunity that we can afford the
development and maintenance cost for the short term.
My .git/packed-refs file begins like so:
# pack-refs with: peeled fully-peeled sorted
c3808ca6982b0ad7ee9b87eca9b50b9a24ec08b0 refs/heads/maint-2.10
3b9e3c2cede15057af3ff8076c45ad5f33829436 refs/heads/maint-2.11
584f8975d2d9530a34bd0b936ae774f82fe30fed refs/heads/master
2cccc8116438182c988c7f26d9559a1c22e78f1c refs/heads/next
8300349bc1f0a0e2623d5824266bd72c1f4b5f24 refs/notes/commits
...
A few observations that can lead to easy design elements are
- Typically more than half of each records is consumed by the
object name that is hard to "compress".
- The file is sorted, so it could use the prefix compression like
we do in the v4 index files.
So perhaps a new format could be
- The header "# pack-refs with: " lists a new trait, "compressed";
- Object names will be expressed in binary, saving 20 bytes per a
record;
- Prefix compression of the refnames similar to v4 index would save
a bit more.
Storing binary object names would actually be favourable for
performance, as the in-core data structure we use to store the
result of parsing the file uses binary.
^ permalink raw reply
* Re: Filesystem Went Read Only During Raid-10 to Raid-6 Data Conversion
From: Zygo Blaxell @ 2020-07-16 22:57 UTC (permalink / raw)
To: John Petrini; +Cc: John Petrini, linux-btrfs
In-Reply-To: <CAJix6J9kmQjfFJJ1GwWXsX7WW6QKxPqpKx86g7hgA4PfbH5Rpg@mail.gmail.com>
On Thu, Jul 16, 2020 at 10:20:43AM -0400, John Petrini wrote:
> I've cleaned up a bit more space and kicked off a balance. btrfs fi usage
> is reporting increased unallocated space so it seems to be helping.
> sudo btrfs balance start -dusage=50 /mnt/storage-array/
> During one of my attempts to clean up space the filesystem went read only
> again with the same out of space error. I'm curious why deleting files
> would cause this.
Deleting a file requires writing a new tree with the file not present.
That requires some extra space...
> On Thu, Jul 16, 2020 at 9:38 AM John Petrini <[1]john.d.petrini@gmail.com>
> wrote:
>
> On Thu, Jul 16, 2020 at 12:27 AM Zygo Blaxell
> <[2]ce3g8jdj@umail.furryterror.org> wrote:
> >
> > On Tue, Jul 14, 2020 at 10:49:08PM -0400, John Petrini wrote:
> > > I've done this and the filesystem mounted successfully though when
> > > attempting to cancel the balance it just tells me it's not running.
> >
> > That's fine, as long as it stops one way or another.
> >
> > > > Aside: data-raid6 metadata-raid10 isn't a sane configuration. It
> > > > has 2 redundant disks for data and 1 redundant disk for metadata,
> so
> > > > the second parity disk in raid6 is wasted space.
> > > >
> > > > The sane configurations for parity raid are:
> > > >
> > > > data-raid6 metadata-raid1c3 (2 parity stripes for data, 3
> copies
> > > > for metadata, 2 disks can fail, requires 3 or more disks)
> > > >
> > > > data-raid5 metadata-raid10 (1 parity stripe for data, 2
> copies
> > > > for metadata, 1 disk can fail, requires 4 or more disks)
> > > >
> > > > data-raid5 metadata-raid1 (1 parity stripe for data, 2
> copies
> > > > for metadata, 1 disk can fail, requires 2 or more disks)
> > > >
> > >
> > > This is very interesting. I had no idea that raid1c3 was an option
> > > though it sounds like I may need a really recent kernel version?
> >
> > 5.5 or later.
>
> Okay I'll look into getting on this version since that's a killer
> feature.
>
> >
> > > btrfs fi usage /mnt/storage-array/
> > > WARNING: RAID56 detected, not implemented
> > > Overall:
> > > Device size: 67.31TiB
> > > Device allocated: 65.45TiB
> > > Device unallocated: 1.86TiB
> > > Device missing: 0.00B
> > > Used: 65.14TiB
> > > Free (estimated): 1.12TiB (min: 1.09TiB)
> > > Data ratio: 1.94
> > > Metadata ratio: 2.00
> > > Global reserve: 512.00MiB (used: 0.00B)
> > >
> > > Data,RAID10: Size:32.68TiB, Used:32.53TiB
> > > /dev/sda 4.34TiB
> > > /dev/sdb 4.34TiB
> > > /dev/sdc 4.34TiB
> > > /dev/sdd 2.21TiB
> > > /dev/sde 2.21TiB
> > > /dev/sdf 4.34TiB
> > > /dev/sdi 1.82TiB
> > > /dev/sdj 1.82TiB
> > > /dev/sdk 1.82TiB
> > > /dev/sdl 1.82TiB
> > > /dev/sdm 1.82TiB
> > > /dev/sdn 1.82TiB
> > >
> > > Data,RAID6: Size:1.04TiB, Used:1.04TiB
> > > /dev/sda 413.92GiB
> > > /dev/sdb 413.92GiB
> > > /dev/sdc 413.92GiB
> > > /dev/sdd 119.07GiB
> > > /dev/sde 119.07GiB
> > > /dev/sdf 413.92GiB
> > >
> > > Metadata,RAID10: Size:40.84GiB, Used:39.80GiB
> > > /dev/sda 5.66GiB
> > > /dev/sdb 5.66GiB
> > > /dev/sdc 5.66GiB
> > > /dev/sdd 2.41GiB
> > > /dev/sde 2.41GiB
> > > /dev/sdf 5.66GiB
> > > /dev/sdi 2.23GiB
> > > /dev/sdj 2.23GiB
> > > /dev/sdk 2.23GiB
> > > /dev/sdl 2.23GiB
> > > /dev/sdm 2.23GiB
> > > /dev/sdn 2.23GiB
> > >
> > > System,RAID10: Size:96.00MiB, Used:3.06MiB
> > > /dev/sda 8.00MiB
> > > /dev/sdb 8.00MiB
> > > /dev/sdc 8.00MiB
> > > /dev/sdd 8.00MiB
> > > /dev/sde 8.00MiB
> > > /dev/sdf 8.00MiB
> > > /dev/sdi 8.00MiB
> > > /dev/sdj 8.00MiB
> > > /dev/sdk 8.00MiB
> > > /dev/sdl 8.00MiB
> > > /dev/sdm 8.00MiB
> > > /dev/sdn 8.00MiB
> > >
> > > Unallocated:
> > > /dev/sda 4.35TiB
> > > /dev/sdb 4.35TiB
> > > /dev/sdc 4.35TiB
> > > /dev/sdd 2.22TiB
> > > /dev/sde 2.22TiB
> > > /dev/sdf 4.35TiB
> > > /dev/sdi 1.82TiB
> > > /dev/sdj 1.82TiB
> > > /dev/sdk 1.82TiB
> > > /dev/sdl 1.82TiB
> > > /dev/sdm 1.82TiB
> > > /dev/sdn 1.82TiB
> >
> > Plenty of unallocated space. It should be able to do the conversion.
>
> After upgrading, the unallocated space tells a different story. Maybe
> due to the newer kernel or btrfs-progs?
That is...odd. Try 'btrfs dev usage', maybe something weird is happening
with device sizes.
> Unallocated:
> /dev/sdd 1.02MiB
> /dev/sde 1.02MiB
> /dev/sdl 1.02MiB
> /dev/sdn 1.02MiB
> /dev/sdm 1.02MiB
> /dev/sdk 1.02MiB
> /dev/sdj 1.02MiB
> /dev/sdi 1.02MiB
> /dev/sdb 1.00MiB
> /dev/sdc 1.00MiB
> /dev/sda 5.90GiB
> /dev/sdg 5.90GiB
...and here we have only 2 disks with free space, so there's zero available
space for more metadata (raid10 requires 4 disks).
> This is after clearing up additional space on the filesytem. When I
> started the conversion there was only ~300G available. There's now
> close 1TB according to df.
>
> /dev/sdd 68T 66T 932G 99% /mnt/storage-array
>
> So I'm not sure what to make of this and whether it's safe to start
> the conversion again. I don't feel like I can trust the unallocated
> space before or after the upgrade.
>
> Here's the versions I'm on now:
> sudo dpkg -l | grep btrfs-progs
> ii btrfs-progs 5.4.1-2
> amd64 Checksumming Copy on Write Filesystem utilities
>
> uname -r
> 5.4.0-40-generic
>
> >
> > > > You didn't post the dmesg messages from when the filesystem went
> > > > read-only, but metadata 'total' is very close to 'used', you were
> doing
> > > > a balance, and the filesystem went read-only, so I'm guessing you
> hit
> > > > ENOSPC for metadata due to lack of unallocated space on at least 4
> drives
> > > > (minimum for raid10).
> > > >
> > >
> > > Here's a paste of everything in dmesg:
> [3]http://paste.openstack.org/show/795929/
> >
> > Unfortunately the original errors are no longer in the buffer. Maybe
> > try /var/log/kern.log?
> >
>
> Found it. So this was a space issue. I knew the filesystem was very
> full but figured ~300G would be enough.
>
> kernel: [3755232.352221] BTRFS: error (device sdd) in
> __btrfs_free_extent:4860: errno=-28 No space left
> kernel: [3755232.352227] BTRFS: Transaction aborted (error -28)
> ernel: [3755232.354693] BTRFS info (device sdd): forced readonly
> kernel: [3755232.354700] BTRFS: error (device sdd) in
> btrfs_run_delayed_refs:2795: errno=-28 No space left
The trick is that the free space has to be unallocated to change profiles.
'df' counts both unallocated and allocated-but-unused space.
Also you have disks of different sizes, which adds an additional
complication: raid6 data on 3 disks takes up more space for the same data
than raid10 data on 4 disks, because the former is 1 data + 2 parity,
while the latter is 1 data + 1 mirror. So for 100 GB of data, it's 200
GB of raw space in raid10 on 4 disks, or 200GB of raw space in raid6 on
4 disks, but 300 GB of raw space in raid6 on 3 disks.
Since your filesystem is nearly full, there are likely to be 3-disk-wide
raid6 block groups formed when there is space available on only 3 drives.
If that happens too often, hundreds of GB will be wasted and the filesystem
fills up.
To convert raid10 to raid6 on a full filesystem with unequal disk sizes
you'll need to do a few steps:
1. balance -dconvert=raid1,stripes=1..3,profiles=raid6
This converts any 3-stripe raid6 to raid1, which will get some wasted
space back. Use raid1 here because it's more flexible for allocation
on small numbers of disks than raid10. We will get rid of it later.
2. balance -dconvert=raid1,devid=1,limit=5
balance -dconvert=raid1,devid=2,limit=5
balance -dconvert=raid1,devid=3,limit=5
balance -dconvert=raid1,devid=6,limit=5
Use btrfs fi show to see the real devids for these, I just put sequential
numbers in the above.
These balances relocate data on the 4.34TB drives to other disks in
the array. The goal is to get some unallocated space on all of the
largest disks so you can create raid6 block groups that span all of them.
We convert to raid1 to get more flexible redistribution of the
space--raid10 will keep trying to fill every available drive, and has
a 4-disk minimum, while raid1 will try to equally distribute space on
all drives but only 2 at a time. 'soft' is not used here because we
want to relocate block groups on these devices whether they are already
raid1 or not.
Note that if there is 5GB free on all the largest disks we can skip
this entire step. If there is not 5GB free on all the largest disks
at the end of the above commands, you may need to repeat this step,
or try 'balance -dconvert=raid1,limit=50' to try to force free space
on all disks in the array.
3. balance -dconvert=raid6,soft,devid=1
This converts all data block groups that have at least one chunk on devid
1 (or any disk of the largest size in the array) from raid10 to raid6.
This will ensure that every chunk that is added to devid 1 has at least
one corresponding chunk that is removed from devid 1. That way, devid
1 doesn't fill up; instead, it will stay with a few GB unallocated.
The other disks will get unallocated space because a raid6 block group
that is at least 4 disks wide will store more data in the same raw space
than raid10.
At this stage it doesn't matter where the space is coming from, as long as
it's coming from a minimum of 4 other disks, and not filling up devid 1.
Some block groups will not be optimal. We'll optimize later.
Eventually you'll get to the point where there is unallocated space on
all disks, and then the balance will finish converting the data to raid6
without further attention.
4. balance -dstripes=1..3,devid=1 # sda, 4.34TB
balance -dstripes=1..3,devid=2 # sdb, 4.34TB
balance -dstripes=1..3,devid=3 # sdc, 4.34TB
balance -dstripes=1..5,devid=4 # sdd, 2.21TB
balance -dstripes=1..5,devid=5 # sde, 2.21TB
balance -dstripes=1..3,devid=6 # sdf, 4.34TB
balance -dstripes=1..9,devid=7 # sdg, 1.82TB
balance -dstripes=1..9,devid=8 # sdh, 1.82TB
balance -dstripes=1..9,devid=9 # sdi, 1.82TB
balance -dstripes=1..9,devid=10 # sdj, 1.82TB
This rebalances any narrow stripes that may have formed during the
previous balances. For each device we calculate how many disks are
the same or equal size, and rebalance any block group that is not
that number of disks wide:
There are 4 4.34TB disks, so we balance any block group
on a 4.34TB disk that is 1 to (4-1) = 3 stripes wide.
There are 6 2.21TB-or-larger disks (2x2.21TB + 4x4.34TB), so we
balance any block group on a 2.21TB disk that is 1 to (6-1) =
5 stripes wide.
There are 10 1.82TB-or-larger disks (this is the smallest size
disk, so all 10 disks are equal or larger), so we balance any
block group on a 1.82TB disk that is 1 to (10-1) = 9 stripes wide.
These balances will only relocate non-optimal block groups, so each one
should not relocate many block groups. If 'btrfs balance status -v' says
it's relocating thousands of block groups, check the stripe count and
devid--if you use the wrong stripe count it will unnecessarily relocate
all the data on the device.
5. balance -mconvert=raid1c3,soft
The final step converts metadata from raid10 to raid1c3. (requires
kernel 5.5)
> > > > > uname -r
> > > > > 5.3.0-40-generic
> > > >
> > > > Please upgrade to 5.4.13 or later. Kernels 5.1 through 5.4.12
> have a
> > > > rare but nasty bug that is triggered by writing at exactly the
> wrong
> > > > moment during balance. 5.3 has some internal defenses against
> that bug
> > > > (the "write time tree checker"), but if they fail, the result is
> metadata
> > > > corruption that requires btrfs check to repair.
> > > >
> > >
> > > Thanks for the heads up. I'm getting it updated now and will attempt
> > > to remount once I do. Once it's remounted how should I proceed? Can
> I
> > > just assume the filesystem is healthy at that point? Should I
> perform
> > > a scrub?
> >
> > If scrub reports no errors it's probably OK.
>
> I did run a scrub and it came back clean.
>
> >
> > A scrub will tell you if any data or metadata is corrupted or any
> > parent-child pointers are broken. That will cover most of the common
> > problems. If the original issue was a spurious ENOSPC then everything
> > should be OK. If the original issue was a write time tree corruption
> > then it should be OK. If the original issue was something else, it
> > will present itself again during the scrub or balance.
> >
> > If there are errors, scrub won't attribute them to the right disks for
> > raid6. It might be worth reading
> >
> >
> [4]https://lore.kernel.org/linux-btrfs/20200627032414.GX10769@hungrycats.org/
> >
> > for a list of current raid5/6 issues to be aware of.
>
> Thanks. This is good info.
>
> --
> John Petrini
>
> References
>
> Visible links
> 1. mailto:john.d.petrini@gmail.com
> 2. mailto:ce3g8jdj@umail.furryterror.org
> 3. http://paste.openstack.org/show/795929/
> 4. https://lore.kernel.org/linux-btrfs/20200627032414.GX10769@hungrycats.org/
^ permalink raw reply
* Re: No pinch events with Dell laptops and Alps
From: Peter Hutterer @ 2020-07-16 23:22 UTC (permalink / raw)
To: Paul Menzel; +Cc: Pali Rohár, linux-input
In-Reply-To: <8b4907c5-4af8-2a2c-bbe1-46b2be2980be@molgen.mpg.de>
On Thu, Jul 16, 2020 at 03:19:32PM +0200, Paul Menzel wrote:
> Dear Linux folks,
>
>
> On the Dell Latitude E7250 and Dell Precision 3340 I fail to get three
> finger pinch events generated needed for GNOME Shell gestures [1].
>
> Debian Sid/unstable with Linux 5.7.6 is running on these systems.
>
> [ 1.602394] input: AlpsPS/2 ALPS GlidePoint as
> /devices/platform/i8042/serio1/input/input2
>
> I am only able to create swipe events. (Four finger swipe works to switch
> workspaces.)
>
> ```
> $ sudo libinput debug-events
> […]
> -event1 DEVICE_ADDED AlpsPS/2 ALPS GlidePoint seat0 default
> group10 cap:pg size 98x51mm tap(dl off) left scroll-nat scroll-2fg-edge
> dwt-on
> -event2 DEVICE_ADDED DELL Wireless hotkeys seat0 default
> group11 cap:k
> event1 - AlpsPS/2 ALPS GlidePoint: kernel bug: Wrong slot count (4),
> reducing to 2
> -event1 GESTURE_SWIPE_BEGIN +1.549s 3
> event1 GESTURE_SWIPE_UPDATE +1.549s 3 -0.36/ 0.26 (-2.59/ 1.85
> unaccelerated)
> […]
> ```
>
> Does the hardware and driver support that?
The device is an Alps GlidePoint which are usually INPUT_PROP_SEMI_MT. On
those devices, we don't support 3fg pinch gestures because we don't get
enough data to make the gestures reliable. There is no specific quirk for
your device otherwise, afaict.
If it's not semi-mt then it's too hard to say without more data, I'll need
at least the output from libinput record to figure out why (that recording
will contain the libinput version which also matters).
Cheers,
Peter
^ permalink raw reply
* Re: [PATCH v2 1/2] ASoC: fsl_asrc: make sure the input and output clocks are different
From: Nicolin Chen @ 2020-07-16 23:20 UTC (permalink / raw)
To: Arnaud Ferraris
Cc: alsa-devel, Timur Tabi, Xiubo Li, Fabio Estevam, Liam Girdwood,
linux-kernel, Mark Brown, kernel, Shengjiu Wang
In-Reply-To: <20200716151352.193451-2-arnaud.ferraris@collabora.com>
On Thu, Jul 16, 2020 at 05:13:52PM +0200, Arnaud Ferraris wrote:
> The current clock selection algorithm might select the same clock for
> both input and output. This can happen when, for instance, the output
> sample rate is a multiple of the input rate.
What's the issue when selecting the same clock source for both
input and output? Please explain it in the commit logs.
> This patch makes sure it always selects distinct input and output
> clocks.
>
> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
> ---
> sound/soc/fsl/fsl_asrc.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
> index 02c81d2e34ad..6d43cab6c885 100644
> --- a/sound/soc/fsl/fsl_asrc.c
> +++ b/sound/soc/fsl/fsl_asrc.c
> @@ -608,8 +608,8 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
> {
> struct fsl_asrc_pair_priv *pair_priv = pair->private;
> struct asrc_config *config = pair_priv->config;
> - int rate[2], select_clk[2]; /* Array size 2 means IN and OUT */
> - int clk_rate, clk_index;
> + int rate[2], select_clk[2], clk_index[2]; /* Array size 2 means IN and OUT */
> + int clk_rate;
> int i = 0, j = 0;
>
> rate[IN] = in_rate;
> @@ -618,11 +618,12 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
> /* Select proper clock source for internal ratio mode */
> for (j = 0; j < 2; j++) {
> for (i = 0; i < ASRC_CLK_MAP_LEN; i++) {
> - clk_index = asrc_priv->clk_map[j][i];
> - clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index]);
> + clk_index[j] = asrc_priv->clk_map[j][i];
> + clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index[j]]);
> /* Only match a perfect clock source with no remainder */
Better to update the comments here as there's a new condition.
> if (clk_rate != 0 && (clk_rate / rate[j]) <= 1024 &&
> - (clk_rate % rate[j]) == 0)
> + (clk_rate % rate[j]) == 0 &&
> + (j == 0 || clk_index[j] != clk_index[j-1]))
clk_index[j - 1]
^ permalink raw reply
* Re: [PATCH RFC leds + net-next 2/3] leds: trigger: return error value if .activate() failed
From: kernel test robot @ 2020-07-16 23:20 UTC (permalink / raw)
To: kbuild-all
In-Reply-To: <20200716171730.13227-3-marek.behun@nic.cz>
[-- Attachment #1: Type: text/plain, Size: 5162 bytes --]
Hi "Marek,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Marek-Beh-n/Add-support-for-LEDs-on-Marvell-PHYs/20200717-012010
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 59632b220f2d61df274ed3a14a204e941051fdad
config: powerpc-randconfig-r005-20200716 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/leds/led-triggers.c:52:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (sysfs_streq(buf, "none")) {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/leds/led-triggers.c:74:9: note: uninitialized use occurs here
return ret < 0 ? ret : count;
^~~
drivers/leds/led-triggers.c:52:2: note: remove the 'if' if its condition is always false
if (sysfs_streq(buf, "none")) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/leds/led-triggers.c:43:9: note: initialize the variable 'ret' to silence this warning
int ret;
^
= 0
1 warning generated.
vim +52 drivers/leds/led-triggers.c
abf0e9916c9400 Marek Behún 2020-07-16 35
11f70002213774 Akinobu Mita 2019-09-29 36 ssize_t led_trigger_write(struct file *filp, struct kobject *kobj,
11f70002213774 Akinobu Mita 2019-09-29 37 struct bin_attribute *bin_attr, char *buf,
11f70002213774 Akinobu Mita 2019-09-29 38 loff_t pos, size_t count)
c3bc9956ec52fb Richard Purdie 2006-03-31 39 {
11f70002213774 Akinobu Mita 2019-09-29 40 struct device *dev = kobj_to_dev(kobj);
f8a7c6fe14f556 Richard Purdie 2007-07-08 41 struct led_classdev *led_cdev = dev_get_drvdata(dev);
c3bc9956ec52fb Richard Purdie 2006-03-31 42 struct led_trigger *trig;
979669942e8602 Marek Behún 2020-07-16 43 int ret;
acd899e4f3066b Jacek Anaszewski 2014-09-22 44
acd899e4f3066b Jacek Anaszewski 2014-09-22 45 mutex_lock(&led_cdev->led_access);
acd899e4f3066b Jacek Anaszewski 2014-09-22 46
acd899e4f3066b Jacek Anaszewski 2014-09-22 47 if (led_sysfs_is_disabled(led_cdev)) {
acd899e4f3066b Jacek Anaszewski 2014-09-22 48 ret = -EBUSY;
acd899e4f3066b Jacek Anaszewski 2014-09-22 49 goto unlock;
acd899e4f3066b Jacek Anaszewski 2014-09-22 50 }
c3bc9956ec52fb Richard Purdie 2006-03-31 51
7296c33ed12ef1 Heiner Kallweit 2016-03-08 @52 if (sysfs_streq(buf, "none")) {
0013b23d66a276 Németh Márton 2008-03-09 53 led_trigger_remove(led_cdev);
acd899e4f3066b Jacek Anaszewski 2014-09-22 54 goto unlock;
c3bc9956ec52fb Richard Purdie 2006-03-31 55 }
c3bc9956ec52fb Richard Purdie 2006-03-31 56
dc47206e552c08 Richard Purdie 2007-11-10 57 down_read(&triggers_list_lock);
c3bc9956ec52fb Richard Purdie 2006-03-31 58 list_for_each_entry(trig, &trigger_list, next_trig) {
abf0e9916c9400 Marek Behún 2020-07-16 59 if (sysfs_streq(buf, trig->name) && trigger_relevant(led_cdev, trig)) {
dc47206e552c08 Richard Purdie 2007-11-10 60 down_write(&led_cdev->trigger_lock);
979669942e8602 Marek Behún 2020-07-16 61 ret = led_trigger_set(led_cdev, trig);
dc47206e552c08 Richard Purdie 2007-11-10 62 up_write(&led_cdev->trigger_lock);
c3bc9956ec52fb Richard Purdie 2006-03-31 63
dc47206e552c08 Richard Purdie 2007-11-10 64 up_read(&triggers_list_lock);
acd899e4f3066b Jacek Anaszewski 2014-09-22 65 goto unlock;
c3bc9956ec52fb Richard Purdie 2006-03-31 66 }
c3bc9956ec52fb Richard Purdie 2006-03-31 67 }
a3eac76cdf7225 Heiner Kallweit 2016-07-01 68 /* we come here only if buf matches no trigger */
a3eac76cdf7225 Heiner Kallweit 2016-07-01 69 ret = -EINVAL;
dc47206e552c08 Richard Purdie 2007-11-10 70 up_read(&triggers_list_lock);
c3bc9956ec52fb Richard Purdie 2006-03-31 71
acd899e4f3066b Jacek Anaszewski 2014-09-22 72 unlock:
acd899e4f3066b Jacek Anaszewski 2014-09-22 73 mutex_unlock(&led_cdev->led_access);
979669942e8602 Marek Behún 2020-07-16 74 return ret < 0 ? ret : count;
c3bc9956ec52fb Richard Purdie 2006-03-31 75 }
11f70002213774 Akinobu Mita 2019-09-29 76 EXPORT_SYMBOL_GPL(led_trigger_write);
c3bc9956ec52fb Richard Purdie 2006-03-31 77
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35399 bytes --]
^ permalink raw reply
* Re: [PATCH] imx219: selection compliance fixes
From: Laurent Pinchart @ 2020-07-16 23:20 UTC (permalink / raw)
To: Hans Verkuil
Cc: Jacopo Mondi, Linux Media Mailing List, Sowjanya Komatineni,
Sakari Ailus, Ricardo Ribalda Delgado, libcamera-devel
In-Reply-To: <a6c1896c-583d-3b74-dd18-30c735218b98@xs4all.nl>
Hi Hans,
On Thu, Jul 16, 2020 at 03:53:41PM +0200, Hans Verkuil wrote:
> On 16/07/2020 14:59, Laurent Pinchart wrote:
> > On Thu, Jul 16, 2020 at 11:48:19AM +0200, Hans Verkuil wrote:
> >> On 15/07/2020 09:19, Jacopo Mondi wrote:
> >>> On Wed, Jul 15, 2020 at 02:49:38AM +0300, Laurent Pinchart wrote:
> >>>> On Tue, Jul 14, 2020 at 02:31:46PM +0200, Jacopo Mondi wrote:
> >>>>> On Thu, Jul 02, 2020 at 03:50:04PM +0200, Hans Verkuil wrote:
> >>>>>> The top/left crop coordinates were 0, 0 instead of 8, 8 in the
> >>>>>> supported_modes array. This was a mismatch with the default values,
> >>>>>> so this is corrected. Found with v4l2-compliance.
> >>>>>>
> >>>>>> Also add V4L2_SEL_TGT_CROP_BOUNDS support: CROP_DEFAULT and CROP_BOUNDS
> >>>>>> always go together. Found with v4l2-compliance.
> >>>>>
> >>>>> I actually introduced this with
> >>>>> e6d4ef7d58aa ("media: i2c: imx219: Implement get_selection")
> >>>>>
> >>>>>>
> >>>>>> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
> >>>>>> ---
> >>>>>> drivers/media/i2c/imx219.c | 17 +++++++++--------
> >>>>>> 1 file changed, 9 insertions(+), 8 deletions(-)
> >>>>>>
> >>>>>> diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> >>>>>> index 0a546b8e466c..935e2a258ce5 100644
> >>>>>> --- a/drivers/media/i2c/imx219.c
> >>>>>> +++ b/drivers/media/i2c/imx219.c
> >>>>>> @@ -473,8 +473,8 @@ static const struct imx219_mode supported_modes[] = {
> >>>>>> .width = 3280,
> >>>>>> .height = 2464,
> >>>>>> .crop = {
> >>>>>> - .left = 0,
> >>>>>> - .top = 0,
> >>>>>> + .left = 8,
> >>>>>> + .top = 8,
> >>>>>
> >>>>> Mmmm, why this change ?
> >>>>> This values are used to report V4L2_SEL_TGT_CROP rectangle, which
> >>>>> according to the documentation is defined as
> >>>>> "Crop rectangle. Defines the cropped area."
> >>>>> (not a much extensive description :)
> >>
> >> Unless changed by calling S_SELECTION(TGT_CROP) the initial crop is equal
> >> to TGT_CROP_DEFAULT, and but TGT_CROP and TGT_CROP_DEFAULT shall be inside
> >> TGT_CROP_BOUNDS. CROP_BOUNDS may be larger than CROP_DEFAULT and describes
> >> the whole area from which you can crop. I.e. in the case of sensors you can
> >> set the crop rectangle to include optical blanks active pixels.
> >>
> >> In this driver the initial TGT_CROP rectangle as specified in supported_modes
> >> (aligned with the top-left pixel) was outside CROP_BOUNDS (centered) and also
> >> a mismatch with CROP_DEFAULT (also centered).
> >>
> >>>>> Clearly this is a faulty definition, and I know from experience how
> >>>>> hard is proving to define pixel array properties and in which extent
> >>>>> the documentation has to go:
> >>>>> https://lists.libcamera.org/pipermail/libcamera-devel/2020-June/009115.html
> >>>>>
> >>>>> My understanding is that target should report the current crop
> >>>>> rectangle, defined from the rectangle retrieved with the
> >>>>> V4L2_SEL_TGT_CROP_DEFAULT target, which, according documentation
> >>>>> reports the:
> >>>>> "Suggested cropping rectangle that covers the “whole picture”.
> >>>>> This includes only active pixels and excludes other non-active pixels such
> >>>>> as black pixels"
> >>>>>
> >>>>> The TGT_CROP_DEFAULT then reports the active pixel array portion, and
> >>>>> needs to be defined in respect to the TGT_NATIVE_SIZE, which reports
> >>>>> the dimensions of the whole pixel matrix, including non-active pixels,
> >>>>> optical blanks active and non-active pixels.
> >>
> >> The relationship between NATIVE_SIZE and CROP_BOUNDS is not properly defined,
> >> but I would expect that CROP_BOUNDS is inside the NATIVE_SIZE target rectangle.
> >>
> >> If NATIVE_SIZE is larger than BOUNDS, then I would expect that the additional
> >> margins are pixels that are invalid or otherwise useless.
> >>
> >> The hard rule though is that you can crop anywhere within the CROP_BOUNDS area.
> >>
> >> Historically CROP_BOUNDS originated with analog SDTV video capture where it was
> >> possible to capture more data than just the typical 720x576/480 PAL/NTSC active
> >> video area. Analog video was often overscanned, i.e. there was more video data
> >> outside the 'active' video area. That was how CRTs worked. So you could move the
> >> crop window around within the CROP_BOUNDS area, or just capture the full CROP_BOUNDS
> >> are. Although this was often poorly tested/implemented. The bttv driver is one of
> >> the few that could do this.
> >>
> >> This is actually simplified since you could do weird things with the horizontal
> >> sample rate as well, effectively changing the pixel aspect ratio, making things
> >> really complicated. It's analog video so while the video lines were discrete,
> >> horizontally you are just sampling a waveform, so you could sample at different
> >> rates if you wanted to. I doubt anyone ever used it since doing that would give
> >> you a huge headache :-)
> >>
> >> With digital video interfaces (HDMI, DVI, SDI, DP, etc.) that no longer applies and
> >> for those receivers the initial CROP/CROP_DEFAULT/CROP_BOUNDS rectangles are all
> >> the same, e.g. 1920x1080 for 1080p HDMI video.
> >>
> >>>>>
> >>>>> The TGT_CROP rectangle is hence defined from the CROP_DEFAULT one, and
> >>>>> if the 'whole active area' is selected, its top-left corner is placed
> >>>>> in position (0, 0) (what's the point of defining it in respect to an
> >>>>> area which cannot be read anyway ?)
> >>>>>
> >>>>> Unless TGT_CROP should be defined in respect to the NATIVE_SIZE
> >>>>> rectangle too, but that's not specified anywhere.
> >>>>>
> >>>>> Anyway, those selection targets badly apply to image sensors, are
> >>>>> ill-defined as the definition of active pixels, optical blank (active
> >>>>> and non-active) pixels is not provided anywhere, and it's not specified
> >>>>> anywhere what is the reference area for each of those rectangles, so I
> >>>>> might very well got them wrongly.
> >>>>
> >>>> My understanding is that both TGT_CROP_DEFAULT and TGT_CROP_BOUNDS are
> >>>> relative to TGT_NATIVE_SIZE. BOUNDS defines all the pixels that can be
> >>>
> >>> And what is TGT_CROP reference in your understanding ?
> >>
> >> That's the rectangle you are actually cropping. Initially CROP == CROP_DEFAULT
> >> and CROP shall always be inside CROP_BOUNDS. And CROP_BOUNDS shall be equal
> >> or larger than CROP_DEFAULT.
> >
> > I think you've missed the point of Jacopo's question. He wasn't asking
> > if CROP needed to be inside CROP_BOUNDS, but what the reference was for
> > the left and top coordinates. That is, for all the crop rectangles, what
> > is the location of the (0,0) point ? Do they all refer to the same
> > location, or are they relative to each other ? This is not defined.
>
> Ah, I misunderstood.
>
> For analog video it was actually undefined. It could be anything, although typically
> the initial crop rectangle was at (0, 0). That meant that the larger BOUNDS area
> could be at (-8, -8).
>
> For sensors nothing is defined at the moment, but IMHO the largest rectangle
> (i.e. TGT_NATIVE_SIZE) should be at (0, 0). I think negative top-left coordinates
> are just weird and can potentially cause signedness issues.
>
> In any case, all target rectangles are relative to the same point since you need
> to know where the BOUNDS rectangle is within the larger NATIVE_SIZE rectangle
> (ugly name BTW), and ditto for CROP/CROP_DEFAULT within the larger CROP_BOUNDS.
That makes sense to me, having the same reference for all targets should
make it simpler. Jacopo, do you think that's good ?
> >>>> captured, including optical black and invalid pixels, while DEFAULT
> >>>> defines the active area, excluding optical black and invalida pixels. To
> >>>> put it another way, DEFAULT is what the kernel recommends applications
> >>>> to use if they have no specific requirement and/or no specific knowledge
> >>>> about the sensor.
> >>>>
> >>>> I fully agree this is very under-documented, which also means that my
> >>>> understanding may be wrong :-)
> >>>
> >>> With some consensus on this interpretation I would be happy to update
> >>> the documentation. I already considered that, but the selection API
> >>> does not apply to image sensors only, and giving a description which
> >>> is about the pixel array properties might be not totally opportune as
> >>> it would rule out other devices like bridges or muxers.
> >>
> >> And m2m devices like codecs.
> >>
> >>>>>> .width = 3280,
> >>>>>> .height = 2464
> >>>>>> },
> >>>>>> @@ -489,8 +489,8 @@ static const struct imx219_mode supported_modes[] = {
> >>>>>> .width = 1920,
> >>>>>> .height = 1080,
> >>>>>> .crop = {
> >>>>>> - .left = 680,
> >>>>>> - .top = 692,
> >>>>>> + .left = 8 + 680,
> >>>>>> + .top = 8 + 692,
> >>>>>> .width = 1920,
> >>>>>> .height = 1080
> >>>>>> },
> >>>>>> @@ -505,8 +505,8 @@ static const struct imx219_mode supported_modes[] = {
> >>>>>> .width = 1640,
> >>>>>> .height = 1232,
> >>>>>> .crop = {
> >>>>>> - .left = 0,
> >>>>>> - .top = 0,
> >>>>>> + .left = 8,
> >>>>>> + .top = 8,
> >>>>>> .width = 3280,
> >>>>>> .height = 2464
> >>>>>> },
> >>>>>> @@ -521,8 +521,8 @@ static const struct imx219_mode supported_modes[] = {
> >>>>>> .width = 640,
> >>>>>> .height = 480,
> >>>>>> .crop = {
> >>>>>> - .left = 1000,
> >>>>>> - .top = 752,
> >>>>>> + .left = 8 + 1000,
> >>>>>> + .top = 8 + 752,
> >>>>>> .width = 1280,
> >>>>>> .height = 960
> >>>>>> },
> >>>>>> @@ -1014,6 +1014,7 @@ static int imx219_get_selection(struct v4l2_subdev *sd,
> >>>>>> return 0;
> >>>>>>
> >>>>>> case V4L2_SEL_TGT_CROP_DEFAULT:
> >>>>>> + case V4L2_SEL_TGT_CROP_BOUNDS:
> >>>>>
> >>>>> Still not getting what is the purpose of two targets if the "always
> >>>>> have to go together" :)
> >>>>>
> >>>>>> sel->r.top = IMX219_PIXEL_ARRAY_TOP;
> >>>>>> sel->r.left = IMX219_PIXEL_ARRAY_LEFT;
> >>>>>> sel->r.width = IMX219_PIXEL_ARRAY_WIDTH;
--
Regards,
Laurent Pinchart
^ permalink raw reply
* [meta-python][PATCH 2/2] python3-pint: add missing python3-packaging dep
From: Ryan Rowe @ 2020-07-16 23:18 UTC (permalink / raw)
To: openembedded-devel; +Cc: jbroadus, Ryan Rowe
In-Reply-To: <20200716231839.48850-1-rrowe@xevo.com>
Signed-off-by: Ryan Rowe <rrowe@xevo.com>
---
meta-python/recipes-devtools/python/python3-pint_0.14.bb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-python/recipes-devtools/python/python3-pint_0.14.bb b/meta-python/recipes-devtools/python/python3-pint_0.14.bb
index 8e1630476..ab8b4d74d 100644
--- a/meta-python/recipes-devtools/python/python3-pint_0.14.bb
+++ b/meta-python/recipes-devtools/python/python3-pint_0.14.bb
@@ -21,6 +21,10 @@ SRC_URI += " \
file://run-ptest \
"
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-packaging \
+"
+
RDEPENDS_${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
--
2.17.2 (Apple Git-113)
^ permalink raw reply related
* [meta-python][PATCH 1/2] python3-packaging: add -native version
From: Ryan Rowe @ 2020-07-16 23:18 UTC (permalink / raw)
To: openembedded-devel; +Cc: jbroadus, Ryan Rowe
Signed-off-by: Ryan Rowe <rrowe@xevo.com>
---
meta-python/recipes-devtools/python/python3-packaging_20.4.bb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-python/recipes-devtools/python/python3-packaging_20.4.bb b/meta-python/recipes-devtools/python/python3-packaging_20.4.bb
index 0f78fd016..c75707e69 100644
--- a/meta-python/recipes-devtools/python/python3-packaging_20.4.bb
+++ b/meta-python/recipes-devtools/python/python3-packaging_20.4.bb
@@ -8,5 +8,7 @@ SRC_URI[sha256sum] = "4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d55
inherit pypi setuptools3
+BBCLASSEXTEND = "native"
+
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
RDEPENDS_${PN} += "${PYTHON_PN}-six ${PYTHON_PN}-pyparsing"
--
2.17.2 (Apple Git-113)
^ permalink raw reply related
* Re: [PATCH v2 1/2] ASoC: fsl_asrc: make sure the input and output clocks are different
From: Nicolin Chen @ 2020-07-16 23:20 UTC (permalink / raw)
To: Arnaud Ferraris
Cc: alsa-devel, Timur Tabi, Xiubo Li, Fabio Estevam, Shengjiu Wang,
Liam Girdwood, Mark Brown, linux-kernel, kernel
In-Reply-To: <20200716151352.193451-2-arnaud.ferraris@collabora.com>
On Thu, Jul 16, 2020 at 05:13:52PM +0200, Arnaud Ferraris wrote:
> The current clock selection algorithm might select the same clock for
> both input and output. This can happen when, for instance, the output
> sample rate is a multiple of the input rate.
What's the issue when selecting the same clock source for both
input and output? Please explain it in the commit logs.
> This patch makes sure it always selects distinct input and output
> clocks.
>
> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
> ---
> sound/soc/fsl/fsl_asrc.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
> index 02c81d2e34ad..6d43cab6c885 100644
> --- a/sound/soc/fsl/fsl_asrc.c
> +++ b/sound/soc/fsl/fsl_asrc.c
> @@ -608,8 +608,8 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
> {
> struct fsl_asrc_pair_priv *pair_priv = pair->private;
> struct asrc_config *config = pair_priv->config;
> - int rate[2], select_clk[2]; /* Array size 2 means IN and OUT */
> - int clk_rate, clk_index;
> + int rate[2], select_clk[2], clk_index[2]; /* Array size 2 means IN and OUT */
> + int clk_rate;
> int i = 0, j = 0;
>
> rate[IN] = in_rate;
> @@ -618,11 +618,12 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
> /* Select proper clock source for internal ratio mode */
> for (j = 0; j < 2; j++) {
> for (i = 0; i < ASRC_CLK_MAP_LEN; i++) {
> - clk_index = asrc_priv->clk_map[j][i];
> - clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index]);
> + clk_index[j] = asrc_priv->clk_map[j][i];
> + clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index[j]]);
> /* Only match a perfect clock source with no remainder */
Better to update the comments here as there's a new condition.
> if (clk_rate != 0 && (clk_rate / rate[j]) <= 1024 &&
> - (clk_rate % rate[j]) == 0)
> + (clk_rate % rate[j]) == 0 &&
> + (j == 0 || clk_index[j] != clk_index[j-1]))
clk_index[j - 1]
^ permalink raw reply
* + mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings.patch added to -mm tree
From: Andrew Morton @ 2020-07-16 23:09 UTC (permalink / raw)
To: guro, hannes, hughd, mhocko, mm-commits, vbabka
In-Reply-To: <20200703151445.b6a0cfee402c7c5c4651f1b1@linux-foundation.org>
The patch titled
Subject: mm: vmstat: fix /proc/sys/vm/stat_refresh generating false warnings
has been added to the -mm tree. Its filename is
mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Roman Gushchin <guro@fb.com>
Subject: mm: vmstat: fix /proc/sys/vm/stat_refresh generating false warnings
I've noticed a number of warnings like "vmstat_refresh: nr_free_cma -5" or
"vmstat_refresh: nr_zone_write_pending -11" on our production hosts. The
numbers of these warnings were relatively low and stable, so it didn't
look like we are systematically leaking the counters. The corresponding
vmstat counters also looked sane.
These warnings are generated by the vmstat_refresh() function, which
assumes that atomic zone and numa counters can't go below zero. However,
on a SMP machine it's not quite right: due to per-cpu caching it can in
theory be as low as -(zone threshold) * NR_CPUs.
For instance, let's say all cma pages are in use and NR_FREE_CMA_PAGES
reached 0. Then we've reclaimed a small number of cma pages on each CPU
except CPU0, so that most percpu NR_FREE_CMA_PAGES counters are slightly
positive (the atomic counter is still 0). Then somebody on CPU0 consumes
all these pages. The number of pages can easily exceed the threshold and
a negative value will be committed to the atomic counter.
To fix the problem and avoid generating false warnings, let's just relax
the condition and warn only if the value is less than minus the maximum
theoretically possible drift value, which is 125 * number of online CPUs.
It will still allow to catch systematic leaks, but will not generate bogus
warnings.
Link: http://lkml.kernel.org/r/20200714173920.3319063-1-guro@fb.com
Signed-off-by: Roman Gushchin <guro@fb.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
Documentation/admin-guide/sysctl/vm.rst | 4 +-
mm/vmstat.c | 30 +++++++++++++---------
2 files changed, 21 insertions(+), 13 deletions(-)
--- a/Documentation/admin-guide/sysctl/vm.rst~mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings
+++ a/Documentation/admin-guide/sysctl/vm.rst
@@ -822,8 +822,8 @@ e.g. cat /proc/sys/vm/stat_refresh /proc
As a side-effect, it also checks for negative totals (elsewhere reported
as 0) and "fails" with EINVAL if any are found, with a warning in dmesg.
-(At time of writing, a few stats are known sometimes to be found negative,
-with no ill effects: errors and warnings on these stats are suppressed.)
+(On a SMP machine some stats can temporarily become negative, with no ill
+effects: errors and warnings on these stats are suppressed.)
numa_stat
--- a/mm/vmstat.c~mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings
+++ a/mm/vmstat.c
@@ -169,6 +169,8 @@ EXPORT_SYMBOL(vm_node_stat);
#ifdef CONFIG_SMP
+#define MAX_THRESHOLD 125
+
int calculate_pressure_threshold(struct zone *zone)
{
int threshold;
@@ -186,11 +188,9 @@ int calculate_pressure_threshold(struct
threshold = max(1, (int)(watermark_distance / num_online_cpus()));
/*
- * Maximum threshold is 125
+ * Threshold is capped by MAX_THRESHOLD
*/
- threshold = min(125, threshold);
-
- return threshold;
+ return min(MAX_THRESHOLD, threshold);
}
int calculate_normal_threshold(struct zone *zone)
@@ -610,6 +610,9 @@ void dec_node_page_state(struct page *pa
}
EXPORT_SYMBOL(dec_node_page_state);
#else
+
+#define MAX_THRESHOLD 0
+
/*
* Use interrupt disable to serialize counter updates
*/
@@ -1810,7 +1813,7 @@ static void refresh_vm_stats(struct work
int vmstat_refresh(struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos)
{
- long val;
+ long val, max_drift;
int err;
int i;
@@ -1821,17 +1824,22 @@ int vmstat_refresh(struct ctl_table *tab
* pages, immediately after running a test. /proc/sys/vm/stat_refresh,
* which can equally be echo'ed to or cat'ted from (by root),
* can be used to update the stats just before reading them.
- *
- * Oh, and since global_zone_page_state() etc. are so careful to hide
- * transiently negative values, report an error here if any of
- * the stats is negative, so we know to go looking for imbalance.
*/
err = schedule_on_each_cpu(refresh_vm_stats);
if (err)
return err;
+
+ /*
+ * Since global_zone_page_state() etc. are so careful to hide
+ * transiently negative values, report an error here if any of
+ * the stats is negative and are less than the maximum drift value,
+ * so we know to go looking for imbalance.
+ */
+ max_drift = num_online_cpus() * MAX_THRESHOLD;
+
for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) {
val = atomic_long_read(&vm_zone_stat[i]);
- if (val < 0) {
+ if (val < -max_drift) {
pr_warn("%s: %s %ld\n",
__func__, zone_stat_name(i), val);
err = -EINVAL;
@@ -1840,7 +1848,7 @@ int vmstat_refresh(struct ctl_table *tab
#ifdef CONFIG_NUMA
for (i = 0; i < NR_VM_NUMA_STAT_ITEMS; i++) {
val = atomic_long_read(&vm_numa_stat[i]);
- if (val < 0) {
+ if (val < -max_drift) {
pr_warn("%s: %s %ld\n",
__func__, numa_stat_name(i), val);
err = -EINVAL;
_
Patches currently in -mm which might be from guro@fb.com are
mm-kmem-make-memcg_kmem_enabled-irreversible.patch
mm-memcg-factor-out-memcg-and-lruvec-level-changes-out-of-__mod_lruvec_state.patch
mm-memcg-prepare-for-byte-sized-vmstat-items.patch
mm-memcg-convert-vmstat-slab-counters-to-bytes.patch
mm-slub-implement-slub-version-of-obj_to_index.patch
mm-memcg-slab-obj_cgroup-api.patch
mm-memcg-slab-allocate-obj_cgroups-for-non-root-slab-pages.patch
mm-memcg-slab-save-obj_cgroup-for-non-root-slab-objects.patch
mm-memcg-slab-charge-individual-slab-objects-instead-of-pages.patch
mm-memcg-slab-deprecate-memorykmemslabinfo.patch
mm-memcg-slab-move-memcg_kmem_bypass-to-memcontrolh.patch
mm-memcg-slab-use-a-single-set-of-kmem_caches-for-all-accounted-allocations.patch
mm-memcg-slab-simplify-memcg-cache-creation.patch
mm-memcg-slab-remove-memcg_kmem_get_cache.patch
mm-memcg-slab-deprecate-slab_root_caches.patch
mm-memcg-slab-remove-redundant-check-in-memcg_accumulate_slabinfo.patch
mm-memcg-slab-use-a-single-set-of-kmem_caches-for-all-allocations.patch
kselftests-cgroup-add-kernel-memory-accounting-tests.patch
tools-cgroup-add-memcg_slabinfopy-tool.patch
percpu-return-number-of-released-bytes-from-pcpu_free_area.patch
mm-memcg-percpu-account-percpu-memory-to-memory-cgroups.patch
mm-memcg-percpu-per-memcg-percpu-memory-statistics.patch
mm-memcg-percpu-per-memcg-percpu-memory-statistics-v3.patch
mm-memcg-charge-memcg-percpu-memory-to-the-parent-cgroup.patch
kselftests-cgroup-add-perpcu-memory-accounting-test.patch
mm-memcg-slab-remove-unused-argument-by-charge_slab_page.patch
mm-slab-rename-uncharge_slab_page-to-unaccount_slab_page.patch
mm-kmem-switch-to-static_branch_likely-in-memcg_kmem_enabled.patch
mm-memcontrol-avoid-workload-stalls-when-lowering-memoryhigh.patch
mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings.patch
^ permalink raw reply
* WARNING: modpost: vmlinux.o(.text.unlikely+0xe24): Section mismatch in reference from the function .remove_pud_table() to the function .meminit.text:.split_kernel_mapping()
From: kernel test robot @ 2020-07-16 23:08 UTC (permalink / raw)
To: Aneesh Kumar K.V; +Cc: kbuild-all, linux-kernel, Michael Ellerman
[-- Attachment #1: Type: text/plain, Size: 1037 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 07a56bb875afbe39dabbf6ba7b83783d166863db
commit: ec4abf1e70cf6a3fe6e571d640260005c997c6e1 powerpc/mm/hash64: use _PAGE_PTE when checking for pte_present
date: 2 months ago
config: powerpc-randconfig-c022-20200716 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> WARNING: modpost: vmlinux.o(.text.unlikely+0xe24): Section mismatch in reference from the function .remove_pud_table() to the function .meminit.text:.split_kernel_mapping()
The function .remove_pud_table() references
the function __meminit .split_kernel_mapping().
This is often because .remove_pud_table lacks a __meminit
annotation or the annotation of .split_kernel_mapping is wrong.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31660 bytes --]
^ permalink raw reply
* Re: [PATCH] Replace HTTP links with HTTPS ones: RISC-V
From: Palmer Dabbelt @ 2020-07-16 23:19 UTC (permalink / raw)
To: grandmaster
Cc: aou, linux-kernel, grandmaster, Paul Walmsley, linux-riscv,
christian
In-Reply-To: <20200705220236.29402-1-grandmaster@al2klimov.de>
On Sun, 05 Jul 2020 15:02:36 PDT (-0700), grandmaster@al2klimov.de wrote:
> Rationale:
> Reduces attack surface on kernel devs opening the links for MITM
> as HTTPS traffic is much harder to manipulate.
>
> Deterministic algorithm:
> For each file:
> If not .svg:
> For each line:
> If doesn't contain `\bxmlns\b`:
> For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
> If both the HTTP and HTTPS versions
> return 200 OK and serve the same content:
> Replace HTTP with HTTPS.
>
> Signed-off-by: Alexander A. Klimov <grandmaster@al2klimov.de>
> ---
> Continuing my work started at 93431e0607e5.
>
> If there are any URLs to be removed completely or at least not HTTPSified:
> Just clearly say so and I'll *undo my change*.
> See also https://lkml.org/lkml/2020/6/27/64
>
> If there are any valid, but yet not changed URLs:
> See https://lkml.org/lkml/2020/6/26/837
>
> arch/riscv/include/uapi/asm/unistd.h | 2 +-
> tools/arch/riscv/include/uapi/asm/unistd.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/riscv/include/uapi/asm/unistd.h b/arch/riscv/include/uapi/asm/unistd.h
> index 13ce76cc5aff..4b989ae15d59 100644
> --- a/arch/riscv/include/uapi/asm/unistd.h
> +++ b/arch/riscv/include/uapi/asm/unistd.h
> @@ -12,7 +12,7 @@
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> - * along with this program. If not, see <http://www.gnu.org/licenses/>.
> + * along with this program. If not, see <https://www.gnu.org/licenses/>.
> */
>
> #ifdef __LP64__
> diff --git a/tools/arch/riscv/include/uapi/asm/unistd.h b/tools/arch/riscv/include/uapi/asm/unistd.h
> index 0e2eeeb1fd27..f506cca520b0 100644
> --- a/tools/arch/riscv/include/uapi/asm/unistd.h
> +++ b/tools/arch/riscv/include/uapi/asm/unistd.h
> @@ -12,7 +12,7 @@
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> - * along with this program. If not, see <http://www.gnu.org/licenses/>.
> + * along with this program. If not, see <https://www.gnu.org/licenses/>.
> */
>
> #ifdef __LP64__
Thanks. This is on for-next.
Unless anyone has any objections I'll eventually go remove all the license
boilerplates from arch/rsicv, as it looks like I missed a few when I converted
them over:
$ git grep "GNU" | grep riscv
arch/riscv/Makefile:# This file is subject to the terms and conditions of the GNU General Public
arch/riscv/boot/Makefile:# This file is subject to the terms and conditions of the GNU General Public
arch/riscv/boot/install.sh:# This file is subject to the terms and conditions of the GNU General Public
arch/riscv/include/uapi/asm/elf.h: * it under the terms of the GNU General Public License as published by
arch/riscv/kernel/fpu.S: * modify it under the terms of the GNU General Public License
arch/riscv/kernel/fpu.S: * GNU General Public License for more details.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply
* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/5] drm/i915: Be wary of data races when reading the active execlists (rev2)
From: Patchwork @ 2020-07-16 23:19 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
In-Reply-To: <20200716113357.7644-1-chris@chris-wilson.co.uk>
[-- Attachment #1.1: Type: text/plain, Size: 13957 bytes --]
== Series Details ==
Series: series starting with [1/5] drm/i915: Be wary of data races when reading the active execlists (rev2)
URL : https://patchwork.freedesktop.org/series/79551/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_8757_full -> Patchwork_18193_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_18193_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_18193_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_18193_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
- shard-skl: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl9/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl3/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html
Known issues
------------
Here are the changes found in Patchwork_18193_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_eio@kms:
- shard-skl: [PASS][3] -> [DMESG-WARN][4] ([i915#1982]) +12 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl1/igt@gem_eio@kms.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl5/igt@gem_eio@kms.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][5] -> [FAIL][6] ([i915#79]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-glk6/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1:
- shard-apl: [PASS][7] -> [FAIL][8] ([i915#1635] / [i915#79])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-apl1/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html
* igt@kms_flip@flip-vs-suspend@b-dp1:
- shard-kbl: [PASS][9] -> [DMESG-WARN][10] ([i915#180]) +5 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl7/igt@kms_flip@flip-vs-suspend@b-dp1.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-kbl4/igt@kms_flip@flip-vs-suspend@b-dp1.html
* igt@kms_frontbuffer_tracking@psr-slowdraw:
- shard-tglb: [PASS][11] -> [DMESG-WARN][12] ([i915#1982]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb8/igt@kms_frontbuffer_tracking@psr-slowdraw.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-tglb3/igt@kms_frontbuffer_tracking@psr-slowdraw.html
* igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
- shard-skl: [PASS][13] -> [FAIL][14] ([i915#53])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl3/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl4/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][15] -> [FAIL][16] ([fdo#108145] / [i915#265]) +3 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][17] -> [SKIP][18] ([fdo#109642] / [fdo#111068])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-iclb4/igt@kms_psr2_su@frontbuffer.html
* igt@kms_psr@psr2_primary_blt:
- shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb2/igt@kms_psr@psr2_primary_blt.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-iclb4/igt@kms_psr@psr2_primary_blt.html
* igt@perf_pmu@semaphore-busy@rcs0:
- shard-kbl: [PASS][21] -> [FAIL][22] ([i915#1820])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl7/igt@perf_pmu@semaphore-busy@rcs0.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-kbl3/igt@perf_pmu@semaphore-busy@rcs0.html
#### Possible fixes ####
* igt@gem_ctx_persistence@processes:
- shard-skl: [FAIL][23] ([i915#1528]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl1/igt@gem_ctx_persistence@processes.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl4/igt@gem_ctx_persistence@processes.html
* igt@gem_userptr_blits@invalid-mmap-offset-unsync@gtt:
- shard-tglb: [INCOMPLETE][25] ([i915#2119] / [i915#2149]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb7/igt@gem_userptr_blits@invalid-mmap-offset-unsync@gtt.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-tglb6/igt@gem_userptr_blits@invalid-mmap-offset-unsync@gtt.html
* igt@gem_workarounds@suspend-resume-fd:
- shard-skl: [INCOMPLETE][27] -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl10/igt@gem_workarounds@suspend-resume-fd.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl1/igt@gem_workarounds@suspend-resume-fd.html
* igt@i915_module_load@reload:
- shard-tglb: [DMESG-WARN][29] ([i915#402]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb6/igt@i915_module_load@reload.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-tglb3/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@i2c:
- shard-skl: [DMESG-WARN][31] ([i915#1982]) -> [PASS][32] +3 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl6/igt@i915_pm_rpm@i2c.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl10/igt@i915_pm_rpm@i2c.html
* igt@i915_selftest@mock@requests:
- shard-apl: [INCOMPLETE][33] ([i915#1635] / [i915#2110]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl1/igt@i915_selftest@mock@requests.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-apl4/igt@i915_selftest@mock@requests.html
* igt@kms_cursor_crc@pipe-b-cursor-64x64-onscreen:
- shard-skl: [FAIL][35] ([i915#54]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl1/igt@kms_cursor_crc@pipe-b-cursor-64x64-onscreen.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl5/igt@kms_cursor_crc@pipe-b-cursor-64x64-onscreen.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-skl: [FAIL][37] ([i915#79]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl6/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
- shard-kbl: [DMESG-WARN][39] ([i915#180]) -> [PASS][40] +7 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-edp1:
- shard-skl: [INCOMPLETE][41] ([i915#198]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl9/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl3/igt@kms_flip@flip-vs-suspend-interruptible@c-edp1.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite:
- shard-tglb: [DMESG-WARN][43] ([i915#1982]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-tglb1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite.html
* igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:
- shard-skl: [FAIL][45] ([fdo#108145] / [i915#265]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl9/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
* igt@kms_psr@psr2_primary_render:
- shard-iclb: [SKIP][47] ([fdo#109441]) -> [PASS][48] +1 similar issue
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb7/igt@kms_psr@psr2_primary_render.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-iclb2/igt@kms_psr@psr2_primary_render.html
* igt@kms_vblank@pipe-c-wait-busy-hang:
- shard-apl: [DMESG-WARN][49] ([i915#1635] / [i915#1982]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl1/igt@kms_vblank@pipe-c-wait-busy-hang.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-apl1/igt@kms_vblank@pipe-c-wait-busy-hang.html
#### Warnings ####
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][51] ([i915#1515]) -> [FAIL][52] ([i915#1515])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-iclb4/igt@i915_pm_rc6_residency@rc6-idle.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-iclb8/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
- shard-skl: [FAIL][53] ([i915#79]) -> [FAIL][54] ([i915#2122])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-skl4/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-skl9/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-apl: [DMESG-FAIL][55] ([fdo#108145] / [i915#1635] / [i915#1982]) -> [FAIL][56] ([fdo#108145] / [i915#1635] / [i915#265])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-apl8/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
* igt@runner@aborted:
- shard-tglb: [FAIL][57] ([i915#2110]) -> [FAIL][58] ([i915#1764] / [i915#2110])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8757/shard-tglb8/igt@runner@aborted.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/shard-tglb3/igt@runner@aborted.html
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[i915#1515]: https://gitlab.freedesktop.org/drm/intel/issues/1515
[i915#1528]: https://gitlab.freedesktop.org/drm/intel/issues/1528
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1764]: https://gitlab.freedesktop.org/drm/intel/issues/1764
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1820]: https://gitlab.freedesktop.org/drm/intel/issues/1820
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2110]: https://gitlab.freedesktop.org/drm/intel/issues/2110
[i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2149]: https://gitlab.freedesktop.org/drm/intel/issues/2149
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#53]: https://gitlab.freedesktop.org/drm/intel/issues/53
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_8757 -> Patchwork_18193
CI-20190529: 20190529
CI_DRM_8757: 6802049b80a49f5f45c2bc2dd3e6d189204dc2bb @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5738: bc8b56fe177af34fbde7b96f1f66614a0014c6ef @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_18193: cd44d243792a10e88f0e66df51a82ba47bb4a998 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18193/index.html
[-- Attachment #1.2: Type: text/html, Size: 16727 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply
* Re: [PATCH] Replace HTTP links with HTTPS ones: RISC-V
From: Palmer Dabbelt @ 2020-07-16 23:19 UTC (permalink / raw)
To: grandmaster
Cc: Paul Walmsley, aou, christian, linux-riscv, linux-kernel,
grandmaster
In-Reply-To: <20200705220236.29402-1-grandmaster@al2klimov.de>
On Sun, 05 Jul 2020 15:02:36 PDT (-0700), grandmaster@al2klimov.de wrote:
> Rationale:
> Reduces attack surface on kernel devs opening the links for MITM
> as HTTPS traffic is much harder to manipulate.
>
> Deterministic algorithm:
> For each file:
> If not .svg:
> For each line:
> If doesn't contain `\bxmlns\b`:
> For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
> If both the HTTP and HTTPS versions
> return 200 OK and serve the same content:
> Replace HTTP with HTTPS.
>
> Signed-off-by: Alexander A. Klimov <grandmaster@al2klimov.de>
> ---
> Continuing my work started at 93431e0607e5.
>
> If there are any URLs to be removed completely or at least not HTTPSified:
> Just clearly say so and I'll *undo my change*.
> See also https://lkml.org/lkml/2020/6/27/64
>
> If there are any valid, but yet not changed URLs:
> See https://lkml.org/lkml/2020/6/26/837
>
> arch/riscv/include/uapi/asm/unistd.h | 2 +-
> tools/arch/riscv/include/uapi/asm/unistd.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/riscv/include/uapi/asm/unistd.h b/arch/riscv/include/uapi/asm/unistd.h
> index 13ce76cc5aff..4b989ae15d59 100644
> --- a/arch/riscv/include/uapi/asm/unistd.h
> +++ b/arch/riscv/include/uapi/asm/unistd.h
> @@ -12,7 +12,7 @@
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> - * along with this program. If not, see <http://www.gnu.org/licenses/>.
> + * along with this program. If not, see <https://www.gnu.org/licenses/>.
> */
>
> #ifdef __LP64__
> diff --git a/tools/arch/riscv/include/uapi/asm/unistd.h b/tools/arch/riscv/include/uapi/asm/unistd.h
> index 0e2eeeb1fd27..f506cca520b0 100644
> --- a/tools/arch/riscv/include/uapi/asm/unistd.h
> +++ b/tools/arch/riscv/include/uapi/asm/unistd.h
> @@ -12,7 +12,7 @@
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> - * along with this program. If not, see <http://www.gnu.org/licenses/>.
> + * along with this program. If not, see <https://www.gnu.org/licenses/>.
> */
>
> #ifdef __LP64__
Thanks. This is on for-next.
Unless anyone has any objections I'll eventually go remove all the license
boilerplates from arch/rsicv, as it looks like I missed a few when I converted
them over:
$ git grep "GNU" | grep riscv
arch/riscv/Makefile:# This file is subject to the terms and conditions of the GNU General Public
arch/riscv/boot/Makefile:# This file is subject to the terms and conditions of the GNU General Public
arch/riscv/boot/install.sh:# This file is subject to the terms and conditions of the GNU General Public
arch/riscv/include/uapi/asm/elf.h: * it under the terms of the GNU General Public License as published by
arch/riscv/kernel/fpu.S: * modify it under the terms of the GNU General Public License
arch/riscv/kernel/fpu.S: * GNU General Public License for more details.
^ permalink raw reply
* Re: [PATCH v8 5/8] powerpc/vdso: Prepare for switching VDSO to generic C implementation.
From: Tulio Magno Quites Machado Filho @ 2020-07-16 23:18 UTC (permalink / raw)
To: Christophe Leroy, Michael Ellerman
Cc: linux-arch, nathanl, arnd, linux-kernel, Paul Mackerras,
Christophe Leroy, luto, tglx, vincenzo.frascino, linuxppc-dev
In-Reply-To: <20200715204725.Horde.5GZvsEv4ZkdzFHL76HZiFg8@messagerie.si.c-s.fr>
Christophe Leroy <christophe.leroy@csgroup.eu> writes:
> Michael Ellerman <mpe@ellerman.id.au> a écrit :
>
>> Christophe Leroy <christophe.leroy@c-s.fr> writes:
>>> Prepare for switching VDSO to generic C implementation in following
>>> patch. Here, we:
>>> - Modify __get_datapage() to take an offset
>>> - Prepare the helpers to call the C VDSO functions
>>> - Prepare the required callbacks for the C VDSO functions
>>> - Prepare the clocksource.h files to define VDSO_ARCH_CLOCKMODES
>>> - Add the C trampolines to the generic C VDSO functions
>>>
>>> powerpc is a bit special for VDSO as well as system calls in the
>>> way that it requires setting CR SO bit which cannot be done in C.
>>> Therefore, entry/exit needs to be performed in ASM.
>>>
>>> Implementing __arch_get_vdso_data() would clobber the link register,
>>> requiring the caller to save it. As the ASM calling function already
>>> has to set a stack frame and saves the link register before calling
>>> the C vdso function, retriving the vdso data pointer there is lighter.
>> ...
>>
>>> diff --git a/arch/powerpc/include/asm/vdso/gettimeofday.h
>>> b/arch/powerpc/include/asm/vdso/gettimeofday.h
>>> new file mode 100644
>>> index 000000000000..4452897f9bd8
>>> --- /dev/null
>>> +++ b/arch/powerpc/include/asm/vdso/gettimeofday.h
>>> @@ -0,0 +1,175 @@
>>> +/* SPDX-License-Identifier: GPL-2.0 */
>>> +#ifndef __ASM_VDSO_GETTIMEOFDAY_H
>>> +#define __ASM_VDSO_GETTIMEOFDAY_H
>>> +
>>> +#include <asm/ptrace.h>
>>> +
>>> +#ifdef __ASSEMBLY__
>>> +
>>> +.macro cvdso_call funct
>>> + .cfi_startproc
>>> + PPC_STLU r1, -STACK_FRAME_OVERHEAD(r1)
>>> + mflr r0
>>> + .cfi_register lr, r0
>>> + PPC_STL r0, STACK_FRAME_OVERHEAD + PPC_LR_STKOFF(r1)
>>
>> This doesn't work for me on ppc64(le) with glibc.
>>
>> glibc doesn't create a stack frame before making the VDSO call, so the
>> store of r0 (LR) goes into the caller's frame, corrupting the saved LR,
>> leading to an infinite loop.
>
> Where should it be saved if it can't be saved in the standard location ?
As Michael pointed out, userspace doesn't treat the VDSO as a normal function
call. In order to keep compatibility with existent software, LR would need to
be saved on another stack frame.
--
Tulio Magno
^ permalink raw reply
* [PATCH BlueZ 3/4] shared/gatt-client: Remove notification if its attribute is removed
From: Luiz Augusto von Dentz @ 2020-07-16 23:18 UTC (permalink / raw)
To: linux-bluetooth
In-Reply-To: <20200716231857.934396-1-luiz.dentz@gmail.com>
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
If the attribute is being removed from the database it means the
notification shall also be dropped, that way users don't have to
cleanup its subscriptions themselves.
---
src/shared/gatt-client.c | 70 +++++++++++++++++++++++++++++-----------
1 file changed, 52 insertions(+), 18 deletions(-)
diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
index 0b81a7a5c..e21aca1f0 100644
--- a/src/shared/gatt-client.c
+++ b/src/shared/gatt-client.c
@@ -174,9 +174,12 @@ static void request_unref(void *data)
}
struct notify_chrc {
+ struct bt_gatt_client *client;
+ struct gatt_db_attribute *attr;
uint16_t value_handle;
uint16_t ccc_handle;
uint16_t properties;
+ unsigned int notify_id;
int notify_count; /* Reference count of registered notify callbacks */
/* Pending calls to register_notify are queued here so that they can be
@@ -235,6 +238,51 @@ static void find_ccc(struct gatt_db_attribute *attr, void *user_data)
*ccc_ptr = attr;
}
+static bool match_notify_chrc(const void *data, const void *user_data)
+{
+ const struct notify_data *notify_data = data;
+ const struct notify_chrc *chrc = user_data;
+
+ return notify_data->chrc == chrc;
+}
+
+static void notify_data_cleanup(void *data)
+{
+ struct notify_data *notify_data = data;
+
+ if (notify_data->att_id)
+ bt_att_cancel(notify_data->client->att, notify_data->att_id);
+
+ notify_data_unref(notify_data);
+}
+
+static void notify_chrc_free(void *data)
+{
+ struct notify_chrc *chrc = data;
+
+ if (chrc->notify_id)
+ gatt_db_attribute_unregister(chrc->attr, chrc->notify_id);
+
+ queue_destroy(chrc->reg_notify_queue, notify_data_unref);
+ free(chrc);
+}
+
+static void chrc_removed(struct gatt_db_attribute *attr, void *user_data)
+{
+ struct notify_chrc *chrc = user_data;
+ struct bt_gatt_client *client = chrc->client;
+ struct notify_data *data;
+
+ chrc->notify_id = 0;
+
+ while ((data = queue_remove_if(client->notify_list, match_notify_chrc,
+ chrc)))
+ notify_data_cleanup(data);
+
+ queue_remove(client->notify_chrcs, chrc);
+ notify_chrc_free(chrc);
+}
+
static struct notify_chrc *notify_chrc_create(struct bt_gatt_client *client,
uint16_t value_handle)
{
@@ -274,22 +322,18 @@ static struct notify_chrc *notify_chrc_create(struct bt_gatt_client *client,
if (ccc)
chrc->ccc_handle = gatt_db_attribute_get_handle(ccc);
+ chrc->client = client;
+ chrc->attr = attr;
chrc->value_handle = value_handle;
chrc->properties = properties;
+ chrc->notify_id = gatt_db_attribute_register(attr, chrc_removed, chrc,
+ NULL);
queue_push_tail(client->notify_chrcs, chrc);
return chrc;
}
-static void notify_chrc_free(void *data)
-{
- struct notify_chrc *chrc = data;
-
- queue_destroy(chrc->reg_notify_queue, notify_data_unref);
- free(chrc);
-}
-
static bool match_notify_data_id(const void *a, const void *b)
{
const struct notify_data *notify_data = a;
@@ -303,16 +347,6 @@ struct handle_range {
uint16_t end;
};
-static void notify_data_cleanup(void *data)
-{
- struct notify_data *notify_data = data;
-
- if (notify_data->att_id)
- bt_att_cancel(notify_data->client->att, notify_data->att_id);
-
- notify_data_unref(notify_data);
-}
-
struct discovery_op;
typedef void (*discovery_op_complete_func_t)(struct discovery_op *op,
--
2.25.3
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
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.