mbox series

[SRU,G/aws,0/2] aws: update patch to batch hibernate and resume IO requests

Message ID 20201104120554.944255-1-andrea.righi@canonical.com
Headers show
Series aws: update patch to batch hibernate and resume IO requests | expand

Message

Andrea Righi Nov. 4, 2020, 12:05 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1902864

[Impact]

During hibernation and resume the kernel is submitting an individual IO
request for each page of data. In the aws kernel we are using a custom
SAUCE patch to batch IO requests together in order to achieve better
performance.

Recently a patch designed to achieve the same goal has been applied
upstream. This patch has been acknowledged by Amazon and it has shown a
performance improvement.

Moreover, this patch looks much cleaner compared to the custom patch
that we are using and it's upstream, so it makes sense to drop the
previous patch and apply this new one.

[Test case]

Hibernate + resume and measure the time required to perform these
operations.

Performance result reported by Amazon:

    One hibernate and resume cycle for 16GB RAM out of 32GB in use takes
    around 21 minutes before the change, and 1 minutes after the change on
    a system with limited storage IOPS.

[Fix]

Apply the following upstream commit:

 55c4478a8f0ecedc0c1a0c9379380249985c372a ("PM: hibernate: Batch hibernate and resume IO requests")

Drop the custom aws SAUCE patch:

 11c3fa3b29722124f5c9122671983614383686db ("UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests")

[Regression potential]

Upstream patch that allows to drop a custom patch that is doing the same
thing. The only potential regression would be a performance drop, but
according to Amazon's tests and our tests, we didn't notice any
performance regression. Any other kind of regression would be considered
as upstream regressions.

----------------------------------------------------------------
Andrea Righi (1):
      Revert "UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests"

Xiaoyi Chen (1):
      PM: hibernate: Batch hibernate and resume IO requests

 kernel/power/swap.c | 250 ++++++++++------------------------------------------
 1 file changed, 49 insertions(+), 201 deletions(-)

Comments

Stefan Bader Nov. 4, 2020, 2:14 p.m. UTC | #1
On 04.11.20 13:05, Andrea Righi wrote:
> BugLink: https://bugs.launchpad.net/bugs/1902864
> 
> [Impact]
> 
> During hibernation and resume the kernel is submitting an individual IO
> request for each page of data. In the aws kernel we are using a custom
> SAUCE patch to batch IO requests together in order to achieve better
> performance.
> 
> Recently a patch designed to achieve the same goal has been applied
> upstream. This patch has been acknowledged by Amazon and it has shown a
> performance improvement.
> 
> Moreover, this patch looks much cleaner compared to the custom patch
> that we are using and it's upstream, so it makes sense to drop the
> previous patch and apply this new one.
> 
> [Test case]
> 
> Hibernate + resume and measure the time required to perform these
> operations.
> 
> Performance result reported by Amazon:
> 
>     One hibernate and resume cycle for 16GB RAM out of 32GB in use takes
>     around 21 minutes before the change, and 1 minutes after the change on
>     a system with limited storage IOPS.
> 
> [Fix]
> 
> Apply the following upstream commit:
> 
>  55c4478a8f0ecedc0c1a0c9379380249985c372a ("PM: hibernate: Batch hibernate and resume IO requests")
> 
> Drop the custom aws SAUCE patch:
> 
>  11c3fa3b29722124f5c9122671983614383686db ("UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests")
> 
> [Regression potential]
> 
> Upstream patch that allows to drop a custom patch that is doing the same
> thing. The only potential regression would be a performance drop, but
> according to Amazon's tests and our tests, we didn't notice any
> performance regression. Any other kind of regression would be considered
> as upstream regressions.
> 
> ----------------------------------------------------------------
> Andrea Righi (1):
>       Revert "UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests"
> 
> Xiaoyi Chen (1):
>       PM: hibernate: Batch hibernate and resume IO requests
> 
>  kernel/power/swap.c | 250 ++++++++++------------------------------------------
>  1 file changed, 49 insertions(+), 201 deletions(-)
> 
> 
Acked-by: Stefan Bader <stefan.bader@canonical.com>
William Breathitt Gray Nov. 5, 2020, 4:39 p.m. UTC | #2
On Wed, Nov 04, 2020 at 01:05:52PM +0100, Andrea Righi wrote:
> BugLink: https://bugs.launchpad.net/bugs/1902864
> 
> [Impact]
> 
> During hibernation and resume the kernel is submitting an individual IO
> request for each page of data. In the aws kernel we are using a custom
> SAUCE patch to batch IO requests together in order to achieve better
> performance.
> 
> Recently a patch designed to achieve the same goal has been applied
> upstream. This patch has been acknowledged by Amazon and it has shown a
> performance improvement.
> 
> Moreover, this patch looks much cleaner compared to the custom patch
> that we are using and it's upstream, so it makes sense to drop the
> previous patch and apply this new one.
> 
> [Test case]
> 
> Hibernate + resume and measure the time required to perform these
> operations.
> 
> Performance result reported by Amazon:
> 
>     One hibernate and resume cycle for 16GB RAM out of 32GB in use takes
>     around 21 minutes before the change, and 1 minutes after the change on
>     a system with limited storage IOPS.
> 
> [Fix]
> 
> Apply the following upstream commit:
> 
>  55c4478a8f0ecedc0c1a0c9379380249985c372a ("PM: hibernate: Batch hibernate and resume IO requests")
> 
> Drop the custom aws SAUCE patch:
> 
>  11c3fa3b29722124f5c9122671983614383686db ("UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests")
> 
> [Regression potential]
> 
> Upstream patch that allows to drop a custom patch that is doing the same
> thing. The only potential regression would be a performance drop, but
> according to Amazon's tests and our tests, we didn't notice any
> performance regression. Any other kind of regression would be considered
> as upstream regressions.
> 
> ----------------------------------------------------------------
> Andrea Righi (1):
>       Revert "UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests"
> 
> Xiaoyi Chen (1):
>       PM: hibernate: Batch hibernate and resume IO requests
> 
>  kernel/power/swap.c | 250 ++++++++++------------------------------------------
>  1 file changed, 49 insertions(+), 201 deletions(-)

Always nice to replace a SAUCE with an upstream cherry-pick. :-)

Thanks!

Acked-by: William Breathitt Gray <william.gray@canonical.com>
Ian May Nov. 5, 2020, 11:51 p.m. UTC | #3
Applied to G/aws/master

Thanks,
Ian

On 2020-11-04 13:05:52 , Andrea Righi wrote:
> BugLink: https://bugs.launchpad.net/bugs/1902864
> 
> [Impact]
> 
> During hibernation and resume the kernel is submitting an individual IO
> request for each page of data. In the aws kernel we are using a custom
> SAUCE patch to batch IO requests together in order to achieve better
> performance.
> 
> Recently a patch designed to achieve the same goal has been applied
> upstream. This patch has been acknowledged by Amazon and it has shown a
> performance improvement.
> 
> Moreover, this patch looks much cleaner compared to the custom patch
> that we are using and it's upstream, so it makes sense to drop the
> previous patch and apply this new one.
> 
> [Test case]
> 
> Hibernate + resume and measure the time required to perform these
> operations.
> 
> Performance result reported by Amazon:
> 
>     One hibernate and resume cycle for 16GB RAM out of 32GB in use takes
>     around 21 minutes before the change, and 1 minutes after the change on
>     a system with limited storage IOPS.
> 
> [Fix]
> 
> Apply the following upstream commit:
> 
>  55c4478a8f0ecedc0c1a0c9379380249985c372a ("PM: hibernate: Batch hibernate and resume IO requests")
> 
> Drop the custom aws SAUCE patch:
> 
>  11c3fa3b29722124f5c9122671983614383686db ("UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests")
> 
> [Regression potential]
> 
> Upstream patch that allows to drop a custom patch that is doing the same
> thing. The only potential regression would be a performance drop, but
> according to Amazon's tests and our tests, we didn't notice any
> performance regression. Any other kind of regression would be considered
> as upstream regressions.
> 
> ----------------------------------------------------------------
> Andrea Righi (1):
>       Revert "UBUNTU: SAUCE: [aws] PM / hibernate: Speed up hibernation by batching requests"
> 
> Xiaoyi Chen (1):
>       PM: hibernate: Batch hibernate and resume IO requests
> 
>  kernel/power/swap.c | 250 ++++++++++------------------------------------------
>  1 file changed, 49 insertions(+), 201 deletions(-)
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team