From: Vignesh Raman <vignesh.raman@collabora.com>
To: linux-rockchip@lists.infradead.org,
dri-devel <dri-devel@lists.freedesktop.org>
Cc: hjc@rock-chips.com, heiko@sntech.de, andy.yan@rock-chips.com,
maarten.lankhorst@linux.intel.com,
Maxime Ripard <mripard@kernel.org>,
tzimmermann@suse.de, Dave Airlie <airlied@gmail.com>,
Daniel Vetter <daniel@ffwll.ch>,
Daniel Stone <daniels@collabora.com>,
Helen Mae Koike Fornazier <helen.koike@collabora.com>,
Sergi Blanch Torne <sergi.blanch.torne@collabora.com>,
Guilherme Alcarde Gallo <guilherme.gallo@collabora.com>
Subject: drm-ci: rockchip: kms_plane@plane-position-hole-dpms flake
Date: Tue, 17 Dec 2024 12:22:52 +0530 [thread overview]
Message-ID: <616aa015-9574-4527-9d07-d8d698bbcc3c@collabora.com> (raw)
Hi Maintainers,
There are some flake test reported for rockchip driver testing in drm-ci.
# Board Name: hp-11A-G6-EE-grunt
# Failure Rate: 100
# IGT Version: 1.29-g33adea9eb
# Linux Version: 6.13.0-rc2
kms_plane@plane-position-hole-dpms
command: cd "/igt/libexec/igt-gpu-tools" &&
"/igt/libexec/igt-gpu-tools/kms_plane" "--run-subtest"
"plane-position-hole-dpms"
pid: 920
exit status: exit status: 98
stdout:
-------
IGT-Version: 1.29-g33adea9eb (aarch64) (Linux: 6.13.0-rc2-gc72a8c362509
aarch64)
Using IGT_SRANDOM=1734342282 for randomisation
Opened device: /dev/dri/card1
Starting subtest: plane-position-hole-dpms
Using (pipe A + eDP-1) to run the subtest.
Starting dynamic subtest: pipe-A-plane-1
Stack trace:
#0 ../lib/igt_core.c:2051 __igt_fail_assert()
#1 ../lib/igt_pipe_crc.c:125 igt_check_crc_equal()
#2 ../tests/kms_plane.c:320 test_plane_position()
#3 ../tests/kms_plane.c:1327 run_test.constprop.0()
#4 ../tests/kms_plane.c:1387 run_tests_for_pipe_plane.constprop.0()
#5 ../tests/kms_plane.c:1457 __igt_unique____real_main1444()
#6 ../tests/kms_plane.c:1444 main()
#7 [__libc_init_first+0x80]
#8 [__libc_start_main+0x98]
#9 [_start+0x30]
Dynamic subtest pipe-A-plane-1: FAIL (1.054s)
Starting dynamic subtest: pipe-A-plane-2
Stack trace:
#0 ../lib/igt_core.c:2051 __igt_fail_assert()
#1 ../lib/igt_pipe_crc.c:125 igt_check_crc_equal()
#2 ../tests/kms_plane.c:320 test_plane_position()
#3 ../tests/kms_plane.c:1327 run_test.constprop.0()
#4 ../tests/kms_plane.c:1387 run_tests_for_pipe_plane.constprop.0()
#5 ../tests/kms_plane.c:1457 __igt_unique____real_main1444()
#6 ../tests/kms_plane.c:1444 main()
#7 [__libc_init_first+0x80]
#8 [__libc_start_main+0x98]
#9 [_start+0x30]
Dynamic subtest pipe-A-plane-2: FAIL (0.272s)
Starting dynamic subtest: pipe-A-plane-3
Stack trace:
#0 ../lib/igt_core.c:2051 __igt_fail_assert()
#1 ../lib/igt_pipe_crc.c:125 igt_check_crc_equal()
#2 ../tests/kms_plane.c:320 test_plane_position()
#3 ../tests/kms_plane.c:1327 run_test.constprop.0()
#4 ../tests/kms_plane.c:1387 run_tests_for_pipe_plane.constprop.0()
#5 ../tests/kms_plane.c:1457 __igt_unique____real_main1444()
#6 ../tests/kms_plane.c:1444 main()
#7 [__libc_init_first+0x80]
#8 [__libc_start_main+0x98]
#9 [_start+0x30]
Dynamic subtest pipe-A-plane-3: FAIL (0.289s)
Using (pipe B + eDP-1) to run the subtest.
Stack trace:
#0 ../lib/igt_core.c:2051 __igt_fail_assert()
#1 ../lib/igt_pipe_crc.c:433 igt_pipe_crc_get_crcs()
#2 ../lib/igt_pipe_crc.c:592 igt_pipe_crc_collect_crc()
#3 ../tests/kms_plane.c:232 test_grab_crc()
#4 ../tests/kms_plane.c:357 test_plane_position()
#5 ../tests/kms_plane.c:1327 run_test.constprop.0()
#6 ../tests/kms_plane.c:1387 run_tests_for_pipe_plane.constprop.0()
#7 ../tests/kms_plane.c:1457 __igt_unique____real_main1444()
#8 ../tests/kms_plane.c:1444 main()
#9 [__libc_init_first+0x80]
#10 [__libc_start_main+0x98]
#11 [_start+0x30]
Subtest plane-position-hole-dpms: FAIL (3.234s)
stderr:
-------
(kms_plane:920) igt_pipe_crc-WARNING: Warning on condition all_zero in
function crc_sanity_checks, file ../lib/igt_pipe_crc.c:475
(kms_plane:920) igt_pipe_crc-WARNING: Suspicious CRC: All values are 0.
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_assert_crc_equal, file ../lib/igt_pipe_crc.c:112:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion: !mismatch ||
igt_skip_crc_compare
Dynamic subtest pipe-A-plane-1 failed.
**** DEBUG ****
(kms_plane:920) DEBUG: Testing connector eDP-1 using pipe A plane 1
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: set_pipe(A)
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: Selecting pipe A
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=2400,
height=1600, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=1,
pitch=9600)
(kms_plane:920) ioctl_wrappers-DEBUG: Test requirement passed:
igt_has_fb_modifiers(fd)
(kms_plane:920) igt_fb-DEBUG: Test requirement passed:
cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_plane:920) igt_kms-DEBUG: display: A.0: plane_set_fb(56)
(kms_plane:920) igt_kms-DEBUG: display: A.0: plane_set_size (2400x1600)
(kms_plane:920) igt_kms-DEBUG: display: A.0: fb_set_position(0,0)
(kms_plane:920) igt_kms-DEBUG: display: A.0: fb_set_size(2400x1600)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=64,
height=64, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=2,
pitch=256)
(kms_plane:920) ioctl_wrappers-DEBUG: Test requirement passed:
igt_has_fb_modifiers(fd)
(kms_plane:920) igt_fb-DEBUG: Test requirement passed:
cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_plane:920) igt_kms-DEBUG: display: A.1: plane_set_fb(57)
(kms_plane:920) igt_kms-DEBUG: display: A.1: plane_set_size (64x64)
(kms_plane:920) igt_kms-DEBUG: display: A.1: fb_set_position(0,0)
(kms_plane:920) igt_kms-DEBUG: display: A.1: fb_set_size(64x64)
(kms_plane:920) igt_kms-DEBUG: display: A.1: plane_set_position(132,132)
(kms_plane:920) igt_kms-DEBUG: display: commit {
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: SetCrtc pipe A, fb
56, src (0, 0), mode 2400x1600
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: SetPlane A.1, fb 57, src =
(0, 0) 64x64 dst = (132, 132) 64x64
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: }
(kms_plane:920) igt_pipe_crc-DEBUG: CRC mismatch at index 1: 0x0 != 0x2e30
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_assert_crc_equal, file ../lib/igt_pipe_crc.c:112:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion: !mismatch ||
igt_skip_crc_compare
(kms_plane:920) igt_core-INFO: Stack trace:
(kms_plane:920) igt_core-INFO: #0 ../lib/igt_core.c:2051
__igt_fail_assert()
(kms_plane:920) igt_core-INFO: #1 ../lib/igt_pipe_crc.c:125
igt_check_crc_equal()
(kms_plane:920) igt_core-INFO: #2 ../tests/kms_plane.c:320
test_plane_position()
(kms_plane:920) igt_core-INFO: #3 ../tests/kms_plane.c:1327
run_test.constprop.0()
(kms_plane:920) igt_core-INFO: #4 ../tests/kms_plane.c:1387
run_tests_for_pipe_plane.constprop.0()
(kms_plane:920) igt_core-INFO: #5 ../tests/kms_plane.c:1457
__igt_unique____real_main1444()
(kms_plane:920) igt_core-INFO: #6 ../tests/kms_plane.c:1444 main()
(kms_plane:920) igt_core-INFO: #7 [__libc_init_first+0x80]
(kms_plane:920) igt_core-INFO: #8 [__libc_start_main+0x98]
(kms_plane:920) igt_core-INFO: #9 [_start+0x30]
**** END ****
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_assert_crc_equal, file ../lib/igt_pipe_crc.c:112:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion: !mismatch ||
igt_skip_crc_compare
Dynamic subtest pipe-A-plane-2 failed.
**** DEBUG ****
(kms_plane:920) DEBUG: Testing connector eDP-1 using pipe A plane 2
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: set_pipe(A)
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: Selecting pipe A
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=2400,
height=1600, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=3,
pitch=9600)
(kms_plane:920) ioctl_wrappers-DEBUG: Test requirement passed:
igt_has_fb_modifiers(fd)
(kms_plane:920) igt_fb-DEBUG: Test requirement passed:
cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_plane:920) igt_kms-DEBUG: display: A.0: plane_set_fb(59)
(kms_plane:920) igt_kms-DEBUG: display: A.0: plane_set_size (2400x1600)
(kms_plane:920) igt_kms-DEBUG: display: A.0: fb_set_position(0,0)
(kms_plane:920) igt_kms-DEBUG: display: A.0: fb_set_size(2400x1600)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=64,
height=64, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=4,
pitch=256)
(kms_plane:920) ioctl_wrappers-DEBUG: Test requirement passed:
igt_has_fb_modifiers(fd)
(kms_plane:920) igt_fb-DEBUG: Test requirement passed:
cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_plane:920) igt_kms-DEBUG: display: A.2: plane_set_fb(60)
(kms_plane:920) igt_kms-DEBUG: display: A.2: plane_set_size (64x64)
(kms_plane:920) igt_kms-DEBUG: display: A.2: fb_set_position(0,0)
(kms_plane:920) igt_kms-DEBUG: display: A.2: fb_set_size(64x64)
(kms_plane:920) igt_kms-DEBUG: display: A.2: plane_set_position(132,132)
(kms_plane:920) igt_kms-DEBUG: display: commit {
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: SetCrtc pipe A, fb
59, src (0, 0), mode 2400x1600
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: SetPlane A.2, fb 60, src =
(0, 0) 64x64 dst = (132, 132) 64x64
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: }
(kms_plane:920) igt_pipe_crc-DEBUG: CRC mismatch at index 1: 0x0 != 0x62d0
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_assert_crc_equal, file ../lib/igt_pipe_crc.c:112:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion: !mismatch ||
igt_skip_crc_compare
(kms_plane:920) igt_core-INFO: Stack trace:
(kms_plane:920) igt_core-INFO: #0 ../lib/igt_core.c:2051
__igt_fail_assert()
(kms_plane:920) igt_core-INFO: #1 ../lib/igt_pipe_crc.c:125
igt_check_crc_equal()
(kms_plane:920) igt_core-INFO: #2 ../tests/kms_plane.c:320
test_plane_position()
(kms_plane:920) igt_core-INFO: #3 ../tests/kms_plane.c:1327
run_test.constprop.0()
(kms_plane:920) igt_core-INFO: #4 ../tests/kms_plane.c:1387
run_tests_for_pipe_plane.constprop.0()
(kms_plane:920) igt_core-INFO: #5 ../tests/kms_plane.c:1457
__igt_unique____real_main1444()
(kms_plane:920) igt_core-INFO: #6 ../tests/kms_plane.c:1444 main()
(kms_plane:920) igt_core-INFO: #7 [__libc_init_first+0x80]
(kms_plane:920) igt_core-INFO: #8 [__libc_start_main+0x98]
(kms_plane:920) igt_core-INFO: #9 [_start+0x30]
**** END ****
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_assert_crc_equal, file ../lib/igt_pipe_crc.c:112:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion: !mismatch ||
igt_skip_crc_compare
Dynamic subtest pipe-A-plane-3 failed.
**** DEBUG ****
(kms_plane:920) DEBUG: Testing connector eDP-1 using pipe A plane 3
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: set_pipe(A)
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: Selecting pipe A
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=2400,
height=1600, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=5,
pitch=9600)
(kms_plane:920) ioctl_wrappers-DEBUG: Test requirement passed:
igt_has_fb_modifiers(fd)
(kms_plane:920) igt_fb-DEBUG: Test requirement passed:
cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_plane:920) igt_kms-DEBUG: display: A.0: plane_set_fb(61)
(kms_plane:920) igt_kms-DEBUG: display: A.0: plane_set_size (2400x1600)
(kms_plane:920) igt_kms-DEBUG: display: A.0: fb_set_position(0,0)
(kms_plane:920) igt_kms-DEBUG: display: A.0: fb_set_size(2400x1600)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(width=64,
height=64, format=XR24(0x34325258), modifier=0x0, size=0)
(kms_plane:920) igt_fb-DEBUG: igt_create_fb_with_bo_size(handle=6,
pitch=256)
(kms_plane:920) ioctl_wrappers-DEBUG: Test requirement passed:
igt_has_fb_modifiers(fd)
(kms_plane:920) igt_fb-DEBUG: Test requirement passed:
cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_plane:920) igt_kms-DEBUG: display: A.3: plane_set_fb(62)
(kms_plane:920) igt_kms-DEBUG: display: A.3: plane_set_size (64x64)
(kms_plane:920) igt_kms-DEBUG: display: A.3: fb_set_position(0,0)
(kms_plane:920) igt_kms-DEBUG: display: A.3: fb_set_size(64x64)
(kms_plane:920) igt_kms-DEBUG: display: A.3: plane_set_position(132,132)
(kms_plane:920) igt_kms-DEBUG: display: commit {
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: eDP-1: SetCrtc pipe A, fb
61, src (0, 0), mode 2400x1600
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: SetCursor pipe A, fb 6 64x64
(kms_plane:920) igt_kms-DEBUG: display: MoveCursor pipe A, (132, 132)
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: Test requirement passed: plane_idx >= 0
&& plane_idx < pipe->n_planes
(kms_plane:920) igt_kms-DEBUG: display: }
(kms_plane:920) igt_pipe_crc-DEBUG: CRC mismatch at index 1: 0x0 != 0x62d0
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_assert_crc_equal, file ../lib/igt_pipe_crc.c:112:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion: !mismatch ||
igt_skip_crc_compare
(kms_plane:920) igt_core-INFO: Stack trace:
(kms_plane:920) igt_core-INFO: #0 ../lib/igt_core.c:2051
__igt_fail_assert()
(kms_plane:920) igt_core-INFO: #1 ../lib/igt_pipe_crc.c:125
igt_check_crc_equal()
(kms_plane:920) igt_core-INFO: #2 ../tests/kms_plane.c:320
test_plane_position()
(kms_plane:920) igt_core-INFO: #3 ../tests/kms_plane.c:1327
run_test.constprop.0()
(kms_plane:920) igt_core-INFO: #4 ../tests/kms_plane.c:1387
run_tests_for_pipe_plane.constprop.0()
(kms_plane:920) igt_core-INFO: #5 ../tests/kms_plane.c:1457
__igt_unique____real_main1444()
(kms_plane:920) igt_core-INFO: #6 ../tests/kms_plane.c:1444 main()
(kms_plane:920) igt_core-INFO: #7 [__libc_init_first+0x80]
(kms_plane:920) igt_core-INFO: #8 [__libc_start_main+0x98]
(kms_plane:920) igt_core-INFO: #9 [_start+0x30]
**** END ****
(kms_plane:920) igt_pipe_crc-CRITICAL: Test assertion failure function
igt_pipe_crc_start, file ../lib/igt_pipe_crc.c:387:
(kms_plane:920) igt_pipe_crc-CRITICAL: Failed assertion:
pipe_crc->crc_fd != -1
(kms_plane:920) igt_pipe_crc-CRITICAL: Last errno: 5, Input/output error
Pipeline: https://gitlab.freedesktop.org/vigneshraman/linux/-/jobs/68246514
Please could you have a look at these test results and let us know if
you need more information. Thank you.
Regards,
Vignesh
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
reply other threads:[~2024-12-17 7:08 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=616aa015-9574-4527-9d07-d8d698bbcc3c@collabora.com \
--to=vignesh.raman@collabora.com \
--cc=airlied@gmail.com \
--cc=andy.yan@rock-chips.com \
--cc=daniel@ffwll.ch \
--cc=daniels@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=guilherme.gallo@collabora.com \
--cc=heiko@sntech.de \
--cc=helen.koike@collabora.com \
--cc=hjc@rock-chips.com \
--cc=linux-rockchip@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=sergi.blanch.torne@collabora.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox