All of lore.kernel.org
 help / color / mirror / Atom feed
From: Coly Li <colyli@suse.de>
To: David Miller <davem@davemloft.net>
Cc: linux-block@vger.kernel.org, linux-nvme@lists.infradead.org,
	netdev@vger.kernel.org, open-iscsi@googlegroups.com,
	linux-scsi@vger.kernel.org, ceph-devel@vger.kernel.org,
	linux-kernel@vger.kernel.org, chaitanya.kulkarni@wdc.com,
	cleech@redhat.com, hch@lst.de, amwang@redhat.com,
	eric.dumazet@gmail.com, hare@suse.de, idryomov@gmail.com,
	jack@suse.com, jlayton@kernel.org, axboe@kernel.dk,
	lduncan@suse.com, michaelc@cs.wisc.edu,
	mskorzhinskiy@solarflare.com, philipp.reisner@linbit.com,
	sagi@grimberg.me, vvs@virtuozzo.com, vbabka@suse.com
Subject: Re: [PATCH v10 0/7] Introduce sendpage_ok() to detect misused sendpage in network related drivers
Date: Sun, 4 Oct 2020 11:38:49 +0800	[thread overview]
Message-ID: <e4482d6a-ee44-04e4-42d0-bb9ab6fc23c7@suse.de> (raw)
In-Reply-To: <20201002.152829.1002796270145913943.davem@davemloft.net>

On 2020/10/3 06:28, David Miller wrote:
> From: Coly Li <colyli@suse.de>
> Date: Fri,  2 Oct 2020 16:27:27 +0800
> 
>> As Sagi Grimberg suggested, the original fix is refind to a more common
>> inline routine:
>>     static inline bool sendpage_ok(struct page *page)
>>     {
>>         return  (!PageSlab(page) && page_count(page) >= 1);
>>     }
>> If sendpage_ok() returns true, the checking page can be handled by the
>> concrete zero-copy sendpage method in network layer.
> 
> Series applied.
> 
>> The v10 series has 7 patches, fixes a WARN_ONCE() usage from v9 series,
>  ...
> 
> I still haven't heard from you how such a fundamental build failure
> was even possible.
> 

Hi David,

Here is the detail steps how I leaked this uncompleted patch to you,
1) Add WARN_ONCE() as WARN_ON() to kernel_sendpage(). Maybe I was still
hesitating when I typed WARN_ONCE() on keyboard.
2) Generate the patches, prepare to post
3) Hmm, compiling failed, oh it is WARN_ONCE(). Yeah, WARN_ONCE() might
be more informative and better.
4) Modify to use WARN_ONCE() and compile and try, looks fine.
5) Re-generate the patches to overwrite the previous ones.
6) Post the patches.

The missing part was, before I post the patches, I should do rebase and
commit the change, but (interrupted by other stuffs) it skipped in my
mind. Although I regenerated the series but the change was not included.
The result was, uncompleted patch posted and the second-half change
still stayed in my local file.


> If the v9 patch series did not even compile, how in the world did you
> perform functional testing of these changes?
> 

Only 0002-net-add-WARN_ONCE-in-kernel_sendpage-for-improper-ze.patch was
tested in v9 series, other tests were done in previous versions.

> Please explain this to me, instead of just quietly fixing it and
> posting an updated series.


And not all the patches in the series were tested. Here is the testing
coverage of the series:

The following ones were tested and verified to break nothing and avoid
the mm corruption and panic,
0001-net-introduce-helper-sendpage_ok-in-include-linux-ne.patch
0002-net-add-WARN_ONCE-in-kernel_sendpage-for-improper-ze.patch
0003-nvme-tcp-check-page-by-sendpage_ok-before-calling-ke.patch
0006-scsi-libiscsi-use-sendpage_ok-in-iscsi_tcp_segment_m.patch

The following ones were not tested, due to complicated environment setup,
0005-drbd-code-cleanup-by-using-sendpage_ok-to-check-page.patch
0007-libceph-use-sendpage_ok-in-ceph_tcp_sendpage.patch

This patch I didn't explicitly test, due to lack of knowledge to modify
network code to trigger a buggy condition. It just went with other
tested patches,
0004-tcp-use-sendpage_ok-to-detect-misused-.sendpage.patch


Back to the built failure, I don't have excuse for leaking this
uncompleted version to you. Of cause I will try to avoid to
inefficiently occupy maintainer's time by such silly mess up.

Thanks for your review and the thorough maintenance.

Coly Li

WARNING: multiple messages have this Message-ID (diff)
From: Coly Li <colyli@suse.de>
To: David Miller <davem@davemloft.net>
Cc: michaelc@cs.wisc.edu, amwang@redhat.com,
	linux-nvme@lists.infradead.org, philipp.reisner@linbit.com,
	hch@lst.de, vbabka@suse.com, sagi@grimberg.me,
	linux-scsi@vger.kernel.org, idryomov@gmail.com,
	open-iscsi@googlegroups.com, mskorzhinskiy@solarflare.com,
	chaitanya.kulkarni@wdc.com, linux-block@vger.kernel.org,
	hare@suse.de, ceph-devel@vger.kernel.org, axboe@kernel.dk,
	cleech@redhat.com, vvs@virtuozzo.com, eric.dumazet@gmail.com,
	netdev@vger.kernel.org, jlayton@kernel.org,
	linux-kernel@vger.kernel.org, lduncan@suse.com, jack@suse.com
Subject: Re: [PATCH v10 0/7] Introduce sendpage_ok() to detect misused sendpage in network related drivers
Date: Sun, 4 Oct 2020 11:38:49 +0800	[thread overview]
Message-ID: <e4482d6a-ee44-04e4-42d0-bb9ab6fc23c7@suse.de> (raw)
In-Reply-To: <20201002.152829.1002796270145913943.davem@davemloft.net>

On 2020/10/3 06:28, David Miller wrote:
> From: Coly Li <colyli@suse.de>
> Date: Fri,  2 Oct 2020 16:27:27 +0800
> 
>> As Sagi Grimberg suggested, the original fix is refind to a more common
>> inline routine:
>>     static inline bool sendpage_ok(struct page *page)
>>     {
>>         return  (!PageSlab(page) && page_count(page) >= 1);
>>     }
>> If sendpage_ok() returns true, the checking page can be handled by the
>> concrete zero-copy sendpage method in network layer.
> 
> Series applied.
> 
>> The v10 series has 7 patches, fixes a WARN_ONCE() usage from v9 series,
>  ...
> 
> I still haven't heard from you how such a fundamental build failure
> was even possible.
> 

Hi David,

Here is the detail steps how I leaked this uncompleted patch to you,
1) Add WARN_ONCE() as WARN_ON() to kernel_sendpage(). Maybe I was still
hesitating when I typed WARN_ONCE() on keyboard.
2) Generate the patches, prepare to post
3) Hmm, compiling failed, oh it is WARN_ONCE(). Yeah, WARN_ONCE() might
be more informative and better.
4) Modify to use WARN_ONCE() and compile and try, looks fine.
5) Re-generate the patches to overwrite the previous ones.
6) Post the patches.

The missing part was, before I post the patches, I should do rebase and
commit the change, but (interrupted by other stuffs) it skipped in my
mind. Although I regenerated the series but the change was not included.
The result was, uncompleted patch posted and the second-half change
still stayed in my local file.


> If the v9 patch series did not even compile, how in the world did you
> perform functional testing of these changes?
> 

Only 0002-net-add-WARN_ONCE-in-kernel_sendpage-for-improper-ze.patch was
tested in v9 series, other tests were done in previous versions.

> Please explain this to me, instead of just quietly fixing it and
> posting an updated series.


And not all the patches in the series were tested. Here is the testing
coverage of the series:

The following ones were tested and verified to break nothing and avoid
the mm corruption and panic,
0001-net-introduce-helper-sendpage_ok-in-include-linux-ne.patch
0002-net-add-WARN_ONCE-in-kernel_sendpage-for-improper-ze.patch
0003-nvme-tcp-check-page-by-sendpage_ok-before-calling-ke.patch
0006-scsi-libiscsi-use-sendpage_ok-in-iscsi_tcp_segment_m.patch

The following ones were not tested, due to complicated environment setup,
0005-drbd-code-cleanup-by-using-sendpage_ok-to-check-page.patch
0007-libceph-use-sendpage_ok-in-ceph_tcp_sendpage.patch

This patch I didn't explicitly test, due to lack of knowledge to modify
network code to trigger a buggy condition. It just went with other
tested patches,
0004-tcp-use-sendpage_ok-to-detect-misused-.sendpage.patch


Back to the built failure, I don't have excuse for leaking this
uncompleted version to you. Of cause I will try to avoid to
inefficiently occupy maintainer's time by such silly mess up.

Thanks for your review and the thorough maintenance.

Coly Li

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  parent reply	other threads:[~2020-10-04  3:40 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-02  8:27 [PATCH v10 0/7] Introduce sendpage_ok() to detect misused sendpage in network related drivers Coly Li
2020-10-02  8:27 ` Coly Li
2020-10-02  8:27 ` [PATCH v10 1/7] net: introduce helper sendpage_ok() in include/linux/net.h Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02  8:27 ` [PATCH v10 2/7] net: add WARN_ONCE in kernel_sendpage() for improper zero-copy send Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02  8:27 ` [PATCH v10 3/7] nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage() Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02  8:27 ` [PATCH v10 4/7] tcp: use sendpage_ok() to detect misused .sendpage Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02  8:27 ` [PATCH v10 5/7] drbd: code cleanup by using sendpage_ok() to check page for kernel_sendpage() Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02  8:27 ` [PATCH v10 6/7] scsi: libiscsi: use sendpage_ok() in iscsi_tcp_segment_map() Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02  8:27 ` [PATCH v10 7/7] libceph: use sendpage_ok() in ceph_tcp_sendpage() Coly Li
2020-10-02  8:27   ` Coly Li
2020-10-02 22:28 ` [PATCH v10 0/7] Introduce sendpage_ok() to detect misused sendpage in network related drivers David Miller
2020-10-02 22:28   ` David Miller
2020-10-03 10:42   ` Coly Li
2020-10-04  3:38   ` Coly Li [this message]
2020-10-04  3:38     ` [PATCH v10 0/7] Introduce sendpage_ok() to detect misused sendpage in network related drivers Coly Li

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=e4482d6a-ee44-04e4-42d0-bb9ab6fc23c7@suse.de \
    --to=colyli@suse.de \
    --cc=amwang@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=ceph-devel@vger.kernel.org \
    --cc=chaitanya.kulkarni@wdc.com \
    --cc=cleech@redhat.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=idryomov@gmail.com \
    --cc=jack@suse.com \
    --cc=jlayton@kernel.org \
    --cc=lduncan@suse.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=mskorzhinskiy@solarflare.com \
    --cc=netdev@vger.kernel.org \
    --cc=open-iscsi@googlegroups.com \
    --cc=philipp.reisner@linbit.com \
    --cc=sagi@grimberg.me \
    --cc=vbabka@suse.com \
    --cc=vvs@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.