[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d2f1ed3c-f855-ff67-47f7-8955ec922e55@huawei.com>
Date: Thu, 22 Sep 2022 15:51:41 +0800
From: liulongfang <liulongfang@...wei.com>
To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@...wei.com>,
"Jason Gunthorpe" <jgg@...dia.com>,
Alex Williamson <alex.williamson@...hat.com>
CC: "cohuck@...hat.com" <cohuck@...hat.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linuxarm@...neuler.org" <linuxarm@...neuler.org>
Subject: Re: [PATCH 1/5] hisi_acc_vfio_pci: Fixes a memory leak bug
On 2022/9/21 15:27, Shameerali Kolothum Thodi wrote:
>
>
>> -----Original Message-----
>> From: liulongfang
>> Sent: 21 September 2022 04:13
>> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@...wei.com>;
>> Jason Gunthorpe <jgg@...dia.com>; Alex Williamson
>> <alex.williamson@...hat.com>
>> Cc: cohuck@...hat.com; linux-kernel@...r.kernel.org;
>> linuxarm@...neuler.org
>> Subject: Re: [PATCH 1/5] hisi_acc_vfio_pci: Fixes a memory leak bug
>>
>> On 2022/9/21 1:03, Shameerali Kolothum Thodi wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Jason Gunthorpe [mailto:jgg@...dia.com]
>>>> Sent: 20 September 2022 17:38
>>>> To: Alex Williamson <alex.williamson@...hat.com>
>>>> Cc: liulongfang <liulongfang@...wei.com>; Shameerali Kolothum Thodi
>>>> <shameerali.kolothum.thodi@...wei.com>; cohuck@...hat.com;
>>>> linux-kernel@...r.kernel.org; linuxarm@...neuler.org
>>>> Subject: Re: [PATCH 1/5] hisi_acc_vfio_pci: Fixes a memory leak bug
>>>>
>>>> On Tue, Sep 20, 2022 at 10:34:43AM -0600, Alex Williamson wrote:
>>>>> On Thu, 15 Sep 2022 09:31:53 +0800
>>>>> Longfang Liu <liulongfang@...wei.com> wrote:
>>>>>
>>>>>> During the stop copy phase of live migration, the driver allocates a
>>>>>> memory for the migrated data to save the data.
>>>>>>
>>>>>> When an exception occurs when the driver reads device data, the
>>>>>> driver will report an error to qemu and exit the current migration state.
>>>>>> But this memory is not released, which will lead to a memory leak
>>>>>> problem.
>>>>
>>>> Why isn't it released? The fput() releases it:
>>>>
>>>> static int hisi_acc_vf_release_file(struct inode *inode, struct file *filp) {
>>>> struct hisi_acc_vf_migration_file *migf = filp->private_data;
>>>>
>>>> hisi_acc_vf_disable_fd(migf);
>>>> mutex_destroy(&migf->lock);
>>>> kfree(migf);
>>>> ^^^^^^^^^^
>>>>
>>>> This patch looks wrong to me.
>>>
>>> That's right. Missed that. Sorry of the oversight.
>>>
>> Yes, fput will call release in ops of file, here will call hisi_acc_vf_release_file
>> to complete the release operation of migf, so this patch is unnecessary.
>>
>> But there is another place that needs to be modified:
>> hisi_acc_vf_disable_fd in hisi_acc_vf_disable_fds is not needed,
>> because it will have an fput next. Is this correct?
>
> I don't think that is correct either. fput() decrements ref count and
> will only call release() if the count is zero. We have an explicit get_file()
> for the hisi_acc_vf_disable_fds(). Isn't it?
>
> Thanks,
> Shameer
>
>
OK! These are not necessary to be modified, so there is no need to add them to
the patchset. I am going to modify the patchset and send it out in the next
version.
>
>>> Thanks,
>>> Shameer
>>>
>>> .
>> Thanks,
>> Longfang.
>>>
> .
Thanks,
Longfang.
>
Powered by blists - more mailing lists