[PATCH] mm/memcontrol: remove the unnecessary rcu_read_[un]lock

2020-12-16 Thread Hui Su
the rcu_read_lock and rcu_read_unlock is unnecessary in:
lock_page_lruvec()
lock_page_lruvec_irq()
lock_page_lruvec_irqsave()

Signed-off-by: Hui Su 
---
 mm/memcontrol.c | 6 --
 1 file changed, 6 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index e3c7ca7dc174..a19f820e8a3f 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1396,10 +1396,8 @@ struct lruvec *lock_page_lruvec(struct page *page)
struct lruvec *lruvec;
struct pglist_data *pgdat = page_pgdat(page);
 
-   rcu_read_lock();
lruvec = mem_cgroup_page_lruvec(page, pgdat);
spin_lock(>lru_lock);
-   rcu_read_unlock();
 
lruvec_memcg_debug(lruvec, page);
 
@@ -1411,10 +1409,8 @@ struct lruvec *lock_page_lruvec_irq(struct page *page)
struct lruvec *lruvec;
struct pglist_data *pgdat = page_pgdat(page);
 
-   rcu_read_lock();
lruvec = mem_cgroup_page_lruvec(page, pgdat);
spin_lock_irq(>lru_lock);
-   rcu_read_unlock();
 
lruvec_memcg_debug(lruvec, page);
 
@@ -1426,10 +1422,8 @@ struct lruvec *lock_page_lruvec_irqsave(struct page 
*page, unsigned long *flags)
struct lruvec *lruvec;
struct pglist_data *pgdat = page_pgdat(page);
 
-   rcu_read_lock();
lruvec = mem_cgroup_page_lruvec(page, pgdat);
spin_lock_irqsave(>lru_lock, *flags);
-   rcu_read_unlock();
 
lruvec_memcg_debug(lruvec, page);
 
-- 
2.29.2



Re: [PATCH] mm/memcontrol: remove the unnecessary rcu_read_[un]lock

2020-12-15 Thread Michal Hocko
On Wed 16-12-20 13:52:13, Hui Su wrote:
> the rcu_read_lock and rcu_read_unlock is unnecessary in:
>   lock_page_lruvec()
>   lock_page_lruvec_irq()
>   lock_page_lruvec_irqsave()

Please add an explanation why it is unnecessary.

> Signed-off-by: Hui Su 
> ---
>  mm/memcontrol.c | 6 --
>  1 file changed, 6 deletions(-)
> 
> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index e3c7ca7dc174..a19f820e8a3f 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -1396,10 +1396,8 @@ struct lruvec *lock_page_lruvec(struct page *page)
>   struct lruvec *lruvec;
>   struct pglist_data *pgdat = page_pgdat(page);
>  
> - rcu_read_lock();
>   lruvec = mem_cgroup_page_lruvec(page, pgdat);
>   spin_lock(>lru_lock);
> - rcu_read_unlock();
>  
>   lruvec_memcg_debug(lruvec, page);
>  
> @@ -1411,10 +1409,8 @@ struct lruvec *lock_page_lruvec_irq(struct page *page)
>   struct lruvec *lruvec;
>   struct pglist_data *pgdat = page_pgdat(page);
>  
> - rcu_read_lock();
>   lruvec = mem_cgroup_page_lruvec(page, pgdat);
>   spin_lock_irq(>lru_lock);
> - rcu_read_unlock();
>  
>   lruvec_memcg_debug(lruvec, page);
>  
> @@ -1426,10 +1422,8 @@ struct lruvec *lock_page_lruvec_irqsave(struct page 
> *page, unsigned long *flags)
>   struct lruvec *lruvec;
>   struct pglist_data *pgdat = page_pgdat(page);
>  
> - rcu_read_lock();
>   lruvec = mem_cgroup_page_lruvec(page, pgdat);
>   spin_lock_irqsave(>lru_lock, *flags);
> - rcu_read_unlock();
>  
>   lruvec_memcg_debug(lruvec, page);
>  
> -- 
> 2.29.2

-- 
Michal Hocko
SUSE Labs