on to KSM. This defer mechanism can automatic lower the scan
frequency in the above case.
Signed-off-by: Wenwei Tao
---
mm/ksm.c | 230 ++
1 file changed, 203 insertions(+), 27 deletions(-)
diff --git a/mm/ksm.c b/mm/ksm.c
index 41
n scanned
twice,
we use VM_HUGETLB to indicate new mergeable VMAs since hugetlb vm are not
supported by KSM.
Wenwei Tao (6):
mm: add defer mechanism to ksm to make it more suitable
mm: change the condition of identifying hugetlb vm
perf: change the condition of identifying hugetlb vm
fs/binfmt_el
n the same time.
Signed-off-by: Wenwei Tao
---
fs/binfmt_elf.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 995986b..f529c8e 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1242,7 +1242,7 @@ static unsigned long vma_dump_s
n the same time.
Signed-off-by: Wenwei Tao
---
arch/powerpc/kvm/e500_mmu_host.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kvm/e500_mmu_host.c b/arch/powerpc/kvm/e500_mmu_host.c
index cc536d4..d76f518 100644
--- a/arch/powerpc/kvm/e500_mmu_host.c
+++ b/ar
n the same time.
Signed-off-by: Wenwei Tao
---
arch/x86/mm/tlb.c |3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
index 3250f23..0247916 100644
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -195,7 +195,8 @@ void flush_tlb_mm_ra
n the same time.
Signed-off-by: Wenwei Tao
---
include/linux/hugetlb_inline.h |2 +-
include/linux/mempolicy.h |2 +-
mm/gup.c |6 --
mm/huge_memory.c | 17 -
mm/madvise.c |6 --
m
n the same time.
Signed-off-by: Wenwei Tao
---
kernel/events/core.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index f04daab..6313bdd 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5624,7 +5624,7 @@ s
From: Wenwei Tao
When create a target, we check whether the target is
already exist first. If the answer is no, we release
the lock and continue the creation. This cannot prevent
concurrent creation of the same target, so hold the lock
until finish the target creation.
Signed-off-by: Wenwei Tao
From: Wenwei Tao
We may create targets with same name on different
backend devices, this is not what we want, so append
the device name to target name to make the new target
name unique in the system.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/gennvm.c | 13 +++--
1 file changed
2016-05-23 17:16 GMT+08:00 Matias Bjørling :
> On 05/23/2016 11:13 AM, Wenwei Tao wrote:
>>
>> From: Wenwei Tao
>>
>> We may create targets with same name on different
>> backend devices, this is not what we want, so append
>> the device name to target nam
0:24 GMT+08:00 Matias Bjørling :
> On 05/23/2016 01:05 PM, Wenwei Tao wrote:
>>
>> 2016-05-23 17:16 GMT+08:00 Matias Bjørling :
>>>
>>> On 05/23/2016 11:13 AM, Wenwei Tao wrote:
>>>>
>>>>
>>>> From: Wenwei Tao
>>>>
>
It's fine to allow the user to define a device name as long as hold
the global lock and link the targets into a global list but that may
against the idea to move the target management into media mgr.
2016-05-24 22:17 GMT+08:00 Matias Bjørling :
> On 05/23/2016 03:31 PM, Wenwei Tao wrote:
From: Wenwei Tao
When create a target, we check whether the target is
already exist first. If the answer is no, we release
the lock and continue the creation. This cannot prevent
concurrent creation of the same target, so hold the lock
until finish the target creation.
Signed-off-by: Wenwei Tao
From: Wenwei Tao
Break the loop when rqd is not null to reduce
unnecessary schedule.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index 2103e97..2915e39 100644
--- a/drivers
That is okay with me.
2016-05-19 20:40 GMT+08:00 Matias Bjørling :
> On 05/19/2016 08:38 AM, Wenwei Tao wrote:
>>
>> From: Wenwei Tao
>>
>> Break the loop when rqd is not null to reduce
>> unnecessary schedule.
>>
>> Signed-off-by: Wenwei Tao
>&
Okay, I will rebase it on for-4.8/core.
2016-05-19 20:42 GMT+08:00 Matias Bjørling :
> On 05/19/2016 08:38 AM, Wenwei Tao wrote:
>>
>> From: Wenwei Tao
>>
>> When create a target, we check whether the target is
>> already exist first. If the answer is no, we rel
From: Wenwei Tao
When create css failed, before call css_free_rcu_fn,
we remove the css id and exit the percpu_ref, but we
will do these again in css_free_work_fn, so they are redundant.
Especially the css id, that would cause problem if we
remove it twice, since it may be assigned to another
2015-12-02 20:16 GMT+08:00 Matias Bjørling :
> The core can initialize I/Os before a media manager is registered with
> the lightnvm subsystem. Make sure that we don't call the media manager
> prematurely.
>
> Signed-off-by: Matias Bjørling
> ---
> drivers/nvme/host/lightnvm.c | 2 +-
> 1 file ch
er can be registered later, that
> can manage a device. Only warn if a media manager fails initialization.
>
> Additionally, protect against the media managed being registered or
> deregistered while looping through available media managers. This was
> reported by Wenwei Tao.
move spin_unlock(&vlun->lock) to common path to make
the code more clean.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/gennvm.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/lightnvm/gennvm.c b/drivers/lightnvm/gennvm.c
index 35dde84..ce60254 10064
create rrpc slabs during rrpc module init,
thus eliminate the lock contention and slab
status check in rrpc_core_init. And destroy
them when rrpc exit.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 54 ++---
1 file changed, 33 insertions
The return value should be non-zero under error conditions.
Remove nvme_free(dev) to avoid free dev more than once.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
According to Open-ChannelSSDInterfaceSpecification 0.1,
NVMe-NVM admin commands use vendor specific admin opcodes
of NVMe, so use the NVMe admin queue to dispatch these
commands
Signed-off-by: Wenwei Tao
---
drivers/nvme/host/lightnvm.c | 13 +++--
1 file changed, 7 insertions(+), 6
Hi Matiasl
Just to let you know this patch and previous version both cannot
address 'register device with supported manager may blocked while
holding the lock' issue.
2015-11-28 3:41 GMT+08:00 Matias Bjørling :
> On 11/27/2015 01:04 PM, Wenwei Tao wrote:
>>
>> Hi Matias
rrpc_get_blk use constant 0 as the input parameter
of nvm_get_blk, this may result in getting gc block
failed unexpectedly.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
put the allocated blks back to the free list
when the luns configure failed, to make these
blks useable to others.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 21 +++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers
To avoid race conditions, traverse dev, media manager,
and targeet lists and also register, unregister entries
to/from them, should be always under the nvm_lock control.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 19 +--
1 file changed, 13 insertions(+), 6 deletions
the target should be unreachable when underlying device was gone.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 12 ++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index f659e60..b95c6c4 100644
--- a/drivers
Hi Matias
I think list_for_each_entry_safe(pos, n, head, member) cannot avoid
race condition
the item point by ‘n’ can be deleted and freed in the same time we
operate on 'pos'
so lock is still necessary.
2015-11-25 2:36 GMT+08:00 Matias :
> On 11/24/2015 04:24 PM, Wenwei Tao wr
I will send a patch for that.
2015-11-25 2:51 GMT+08:00 Matias :
> On 11/24/2015 05:03 PM, Wenwei Tao wrote:
>>
>> the target should be unreachable when underlying device was gone.
>>
>> Signed-off-by: Wenwei Tao
>> ---
>> drivers/lightnvm/core.c |
block creations of new targets, remove exiting targets when
underlying device was gone.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 127 ++-
include/linux/lightnvm.h | 3 ++
2 files changed, 85 insertions(+), 45 deletions(-)
diff --git
Hi
A couple of fixes.
Patch 1 add the missing lock aquire
Patch 2-3 handle the targets when corresponding underlying devices were removed
Wenwei Tao (3):
lightnvm: missing nvm_lock acquire
lightnvm: handle targets when corresponding nvm device exit
nvme: change the interface between nvme
To avoid race conditions, traverse dev, media manager,
and targeet lists and also register, unregister entries
to/from them, should be always under the nvm_lock control.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 19 +--
1 file changed, 13 insertions(+), 6 deletions
When nvme devices were removed, we need to handle the targets
build upon them properly: remove the existing targets, block
creations of new ones. To do this clean up job well, we
need to change the interface between nvme and lightnvm.
Signed-off-by: Wenwei Tao
---
drivers/nvme/host/lightnvm.c
lot 'return'.
I just submit a patch set covering the lock issue and the target issue
mentioned before, you can have a look before you apply this patch.
Thanks.
2015-11-25 19:37 GMT+08:00 Matias Bjørling :
> On 11/25/2015 09:57 AM, Wenwei Tao wrote:
>>
>> Hi Matias
>&g
return dev;
+ up_write(&nvm_lock);
return NULL;
}
use nvm_find_nvm_dev_locked() and nvm_find_nvm_dev() properly.
2015-11-25 21:11 GMT+08:00 Wenwei Tao :
> Hi Matias
>
> Place the lock inside nvm_find_nvm_dev can make code cleaner, but
> sometime may lack of flexibilit
You are right. Reset it to zero is not necessary.
2015-11-25 23:13 GMT+08:00 Matias Bjørling :
> On 11/25/2015 01:42 PM, Wenwei Tao wrote:
>>
>> When nvme devices were removed, we need to handle the targets
>> build upon them properly: remove the existing targets, block
>
/25/2015 01:42 PM, Wenwei Tao wrote:
>>
>> block creations of new targets, remove exiting targets when
>> underlying device was gone.
>>
>> Signed-off-by: Wenwei Tao
>> ---
>> drivers/lightnvm/core.c | 127
>> ++---
When nvme devices were removed, we need to handle the targets
build upon them properly: remove the existing targets, block
creations of new ones. To do this clean up job well, we
need to change the interface between nvme and lightnvm.
Signed-off-by: Wenwei Tao
---
drivers/nvme/host/lightnvm.c
block creations of new targets, remove exiting targets when
underlying device was gone.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 128 +++
include/linux/lightnvm.h | 3 ++
2 files changed, 87 insertions(+), 44 deletions(-)
diff --git
To avoid race conditions, traverse dev, media manager,
and targeet lists and also register, unregister entries
to/from them, should be always under the nvm_lock control.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 73 +
1 file changed
nvme_ns->type set to zero
Wenwei Tao (3):
lightnvm: missing nvm_lock acquire
lightnvm: handle targets when corresponding nvm device exit
nvme: change the interface between nvme and lightnvm
drivers/lightnvm/core.c | 197 ++-
drivers/nvm
lock, this is
not good.
2015-11-27 16:31 GMT+08:00 Matias Bjørling :
> On 11/27/2015 05:09 AM, Wenwei Tao wrote:
>>
>> To avoid race conditions, traverse dev, media manager,
>> and targeet lists and also register, unregister entries
>> to/from them, should be always
rrpc_core_init,or you have any other concerns ?
2015-12-08 3:45 GMT+08:00 Matias Bjørling :
> On Mon, Dec 7, 2015 at 1:16 PM, Wenwei Tao wrote:
>>
>> create rrpc slabs during rrpc module init,
>> thus eliminate the lock contention and slab
>> status check in rrpc_core_ini
when ashmem init fails, destroy the slabs, leave
no garbage.
Signed-off-by: Wenwei Tao
---
drivers/staging/android/ashmem.c | 15 +++
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c
index 3f2a3d6
put bio when submission fails, since we get it
before submission. And return error when backend
device driver doesn't provide a submit_io method,
thus we can end IO properly.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/gennvm.c | 2 +-
drivers/lightnvm/rrpc.c | 4 +++-
2 files chang
2016-01-20 21:03 GMT+08:00 Matias Bjørling :
> On 01/15/2016 12:44 PM, Wenwei Tao wrote:
>> We can create more than one target on a lightnvm
>> device by specifying its begin lun and end lun.
>>
>> But only specify the physical address area is not
>> enough, we
2016-01-20 21:19 GMT+08:00 Matias Bjørling :
> On 01/15/2016 12:44 PM, Wenwei Tao wrote:
>> When create a target, we specify the begin lunid and
>> the end lunid, and get the corresponding continuous
>> luns from media manager, if one of the luns is not free,
>> we
2016-01-21 15:53 GMT+08:00 Matias Bjørling :
> On 01/21/2016 08:44 AM, Wenwei Tao wrote:
>> 2016-01-20 21:19 GMT+08:00 Matias Bjørling :
>>> On 01/15/2016 12:44 PM, Wenwei Tao wrote:
>>>> When create a target, we specify the begin lunid and
>>>> the end l
2016-01-21 17:49 GMT+08:00 Matias Bjørling :
> On 01/21/2016 10:47 AM, Wenwei Tao wrote:
>
>>
>> Currently a bitmap of luns already added into nvm_dev, every time we
>> map the luns we check the bitmap.
>> I don't quite understand why we need to add anothe
tting it back to the list,
this makes the block won't get reclaimed in the future. To solve
this issue, delete block after gcb allocation.
Signed-off-by: Wenwei Tao
---
Changed in v2:
-Advance the gcb allocation, make the debug log deliver
the correct message.
drivers/lightnvm/rrpc.c
We allocate gcb to queue full block to the gc list,
but gcb allocation may fail, if that happens, the
block will not get reclaimed. So add the full block
direct to the gc list, omit the queuing step.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 47
d now, and will not get reclaimed
for further use.
I think we may need to put the page back when the page is not actually
used/programmed.
2016-01-04 19:24 GMT+08:00 Matias Bjørling :
> On 01/04/2016 10:54 AM, Wenwei Tao wrote:
>>
>> We allocate gcb to queue full block to the gc list,
&
There is no need to check whether dev's pages per block is
beyond rrpc support everytime we init a lun, we only need
to check it once before enter the lun init loop.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 11 +--
1 file changed, 5 insertions(+), 6 deletions(-)
pport,
thus we can improve the backend device's space utilization.
Signed-off-by: Wenwei Tao
---
Changes since v3
-limit list luns to 768, thus we don't go
above a single memory page.
-move NVM_DEV_FREE_LUNS to its own patch and
rename it to NVM_DEV_LUNS_STATUS.
-insert and delete some li
Export per lun information to user, let the user
know more detail information about underlying device.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 59 ++-
drivers/lightnvm/gennvm.c | 34 +
include/linux
be zero, thus creation fails in rrpc_map_init().
goto err;
- }
I will include the changes you mentioned in the next version.
Thanks.
2016-02-18 20:35 GMT+08:00 Javier González :
>> On 16 Feb 2016, at 12:28, Wenwei Tao wrote:
>>
>> When create a target, we specify
Since every target now has their own logical address area,
we should deal trans_map and rev_trans_map with relative
logical address instead of the global one.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 12
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a
rrpc->nr_sects is calculated after rrpc init luns succeeds,
before that the value of rrpc->nr_sects is zero, so we cannot
use it to calcuate rrpc area size, we use rrpc->nr_luns instead.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 2 +-
1 file changed, 1 insertion(+), 1
2016-03-30 22:28 GMT+08:00 Wenwei Tao :
> rrpc->nr_sects is calculated after rrpc init luns succeeds,
> before that the value of rrpc->nr_sects is zero, so we cannot
> use it to calcuate rrpc area size, we use rrpc->nr_luns instead.
>
> Signed-off-by: Wenwei Tao
> ---
ero by mistake. If we move rrpc_area_init
call under the rrpc_luns_init call instead, we need a way to avoid it.
2016-03-31 16:57 GMT+08:00 Matias Bjørling :
>
>
> On 03/31/2016 10:31 AM, Wenwei Tao wrote:
>>
>> 2016-03-30 22:28 GMT+08:00 Wenwei Tao :
>>>
>>&g
This is okay with me.
By the way, why don't you like (sector_t)dev->sec_size *
dev->sec_per_lun * rrpc->nr_luns, the change seems smaller?
2016-03-31 18:07 GMT+08:00 Matias Bjørling :
> On 03/31/2016 11:51 AM, Wenwei Tao wrote:
>>
>> This could be work,
Okay, I'll send a patch to cover that change.
2016-03-31 17:11 GMT+08:00 Matias Bjørling :
> On 03/30/2016 04:28 PM, Wenwei Tao wrote:
>>
>> Since every target now has their own logical address area,
>> we should deal trans_map and rev_trans_map with relative
>>
bound of target's own intead of global device's.
In rrpc_block_map_update, we should use the global
physcical address to compare with the one in trans_map,
since we store the global value in it.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 39 ++--
Since we mainly use soffset in device sector size, we store
that value in rrpc->soffset to reduce doing "(ilog2(dev->sec_size) - 9)".
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 17 ++---
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/
Calculate rrpc total blocks and sectors up front, make sense
to use them. For example, we use rrpc->nr_sects to calculate rrpc
area size, but it makes no sense if we don't initialize it up front,
since it would be zero until we finish rrpc luns init.
Signed-off-by: Wenwei Tao
---
do device max_phys_sect boundary check first, otherwise
we will allocate dma_pools for devices whose max sectors
are beyond lightnvm support and register them.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a
In the original calculation, the relationships among
block, plane and lun was confusing, refine it on the
basis of Open-channelSSDInterfaceSpecification.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 9 -
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers
I'm a new guy to flash, if I'm wrong about this patch, please correct me.
Thanks.
2015-11-22 21:51 GMT+08:00 Wenwei Tao :
> In the original calculation, the relationships among
> block, plane and lun was confusing, refine it on the
> basis of Open-channelSSDInterfaceSpecificat
OK, I see. Thanks for the explanation.
2015-11-23 2:34 GMT+08:00 Matias :
> On 11/22/2015 02:51 PM, Wenwei Tao wrote:
>>
>> In the original calculation, the relationships among
>> block, plane and lun was confusing, refine it on the
>> basis of Open-channelSSDInterface
free allocated nvm block and gennvm lun structures when
gennvm register fails, otherwise it will cause memory leak.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/gennvm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/lightnvm/gennvm.c b/drivers/lightnvm/gennvm.c
index ae1fb2b
This is okay with me.
2015-11-23 16:47 GMT+08:00 Matias Bjørling :
> On 11/23/2015 09:29 AM, Wenwei Tao wrote:
>>
>> free allocated nvm block and gennvm lun structures when
>> gennvm register fails, otherwise it will cause memory leak.
>>
>> Signed-off-by: Wenwei
ot;vma->vm_flags & (VM_LOCKED|VM_PFNMAP) || (vma->vm_flags &
(VM_HUGETLB|VM_MERGEABLE)) == VM_HUGETLB".
I am a newbie to Linux kernel, do you have any good suggestions on
this situation?
Thank you
Wenwei
2015-07-03 5:49 GMT+08:00 Scott Wood :
> On Wed, 2015-06-10 at 14:27 +0800, We
From: Wenwei Tao
The mem_cgroup_tree_per_node allocation might fail,
check that before continue the memcg init. Since it
is in the init phase, trigger the panic if that failure
happens.
Signed-off-by: Wenwei Tao
---
mm/memcontrol.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/mm
I think explicit BUG_ON may make the debug easier, since it can point
out the wrong line.
2016-05-30 16:53 GMT+08:00 Michal Hocko :
> On Mon 30-05-16 16:45:51, Wenwei Tao wrote:
>> From: Wenwei Tao
>>
>> The mem_cgroup_tree_per_node allocation might fail,
>> check tha
Hi,
I open the Transparent huge page and run the system and hit the bug
in huge_memory.c:
static void __split_huge_page_refcount(struct page *page)
.
.
.
/* tail_page->_mapcount cannot change */
From: Wenwei Tao
Some pages might have already been allocated before reserve
the pageblock as HIGHATOMIC. When free these pages, put them
directly to the allocator instead of the pcp lists since they
might have the chance to be merged to high order pages.
Signed-off-by: Wenwei Tao
---
mm
Hi
Something is wrong with my email, I cannot send the patch out, and
this patch commit title is not complete.
Apologize for the noise.
2016-06-18 19:45 GMT+08:00 Wenwei Tao :
> From: Wenwei Tao
>
> The migratetype might get staled, pages might have become highatomic when
> we try
From: Wenwei Tao
The migratetype might get staled, pages might have become highatomic when
we try to free them to the allocator, we might not want to put highatomic
pages into other buddy lists, since they are reserved only for atomic high
order use. And also highatomic pages could have been
From: Wenwei Tao
The migratetype might get staled, pages might have become highatomic when
we try to free them to the allocator, we might not want to put highatomic
pages into other buddy lists, since they are reserved only for atomic high
order use. And also highatomic pages could have been
From: Wenwei Tao
We might not want other migrate types pin highatomic pageblock
away since it's reserved for high order use. And also we might
not want reserve high atomic pages out of limit, we can add
check in __free_one_page but this might be costly, so just stop
the merging.
Signed-o
Hi,
The original message is somehow determined to be junk mail and
rejected by the system.
Forward this message.
-- Forwarded message --
From: Wenwei Tao
Date: 2016-06-19 10:40 GMT+08:00
Subject: Re: [RFC PATCH 1/3] mm, page_alloc: free HIGHATOMIC page
directly to the allocator
After register null_blk devices into lightnvm, we forget
to add these devices to the the nullb_list, makes them
invisible to the null_blk driver.
Signed-off-by: Wenwei Tao
---
drivers/block/null_blk.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/block/null_blk.c
passed to test_and_set_bit instead of 0.
2016-03-21 18:25 GMT+08:00 Matias Bjørling :
> On 03/20/2016 06:51 AM, Wenwei Tao wrote:
>>
>> Divide the target's global reverse translation map into per lun,
>> to prepare support for the non-continuous lun target creation.
>>
>>
I notice that sysfs already have lun information exposed, we only need
to add some more,
2016-03-21 18:27 GMT+08:00 Matias Bjørling :
> On 03/19/2016 05:58 PM, Wenwei Tao wrote:
>>
>> Export per lun information to user, let the user
>> know more detail information ab
Divide the target's global reverse translation map into per lun,
to prepare support for the non-continuous lun target creation.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 183 +++
drivers/lightnvm/rrpc.h | 7 +-
include/
pport,
thus we can improve the backend device's space utilization.
Signed-off-by: Wenwei Tao
---
Changes since v4
-fix target creation fail.
-move code concerning the per-lun reverse translation
map to a new patch.
Changes since v3
-limit list luns to 768, thus we don't go
above a single mem
Export per lun information to user, let the user
know more detail information about underlying device.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/core.c | 59 ++-
drivers/lightnvm/gennvm.c | 34 +
include/linux
Divide the target's global reverse translation map into per lun,
to prepare support for the non-continuous lun target creation.
Signed-off-by: Wenwei Tao
---
Changes since v1
-fix merge/rebase mistake in rrpc_block_map_update().
-remove variables poffset and lun_offset in rrpc structure
local_flush_tlb();
goto flush_all;
}
...
}
Thank you
Wenwei
2015-07-07 5:34 GMT+08:00 Scott Wood :
> On Fri, 2015-07-03 at 16:47 +0800, wenwei tao wrote:
>> Hi Scott
>>
>> Thank you for your comments.
>>
>> Kernel already has that function: is_vm
We should check last io compeltion status before
start another one.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index c0886a8..d40c140 100644
--- a/drivers/lightnvm/rrpc.c
+++ b
We delete a block from the gc list before reclaim it, so
put it back to the list on its reclaim fail, otherwize
this block will not get reclaimed and be programable
in the future.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 18 ++
1 file changed, 14 insertions(+), 4
tting it back to the list,
this makes the block won't get reclaimed in the future. To solve
this issue, delete block after gcb allocation.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 7 ---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index d8c7595..307db1e 100644
--- a/drivers/lightnvm/rrpc.c
+++ b/drivers/lightnvm/rrpc.c
@@ -300,8 +300,10 @@ static int
OK, I see. Will include these changes in next version.
2016-01-28 17:09 GMT+08:00 Matias Bjørling :
> On 01/28/2016 09:50 AM, Wenwei Tao wrote:
>> 2016-01-27 17:44 GMT+08:00 Matias Bjørling :
>>> On 01/26/2016 01:33 PM, Wenwei Tao wrote:
>>>> When create a target,
after io submission failed, before free rq, delete rq from
rrpc's inflight list, leave no bad item in the list. And
free rq's ppa_list to avoid memory leak.
Signed-off-by: Wenwei Tao
---
drivers/lightnvm/rrpc.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/drivers/lightnv
This patch is based on [PATCH] lightnvm: fix bio submission issue
https://lkml.org/lkml/2015/12/9/394
2015-12-21 15:32 GMT+08:00 Wenwei Tao :
> after io submission failed, before free rq, delete rq from
> rrpc's inflight list, leave no bad item in the list. And
> free rq'
08:32 AM, Wenwei Tao wrote:
>>
>> after io submission failed, before free rq, delete rq from
>> rrpc's inflight list, leave no bad item in the list. And
>> free rq's ppa_list to avoid memory leak.
>>
>> Signed-off-by: Wenwei Tao
>> ---
>>
pport,
thus we can improve the backend device's space utilization.
Signed-off-by: Wenwei Tao
---
Changes since v2
-rebase on for-next branch
-move luns bitmap to PATCH 2
-remove the logic to dynamically select another lun than
the one requested
-implement lunid list in the lnvm ioctl interfac
Forgot to do that.
Thanks for fixing my mistake.
2016-02-05 19:59 GMT+08:00 Matias Bjørling :
> On 02/04/2016 12:34 PM, Wenwei Tao wrote:
>> Add a bitmap of luns to indicate the status
>> of luns: inuse/available. When create targets
>> do the necessary check to avoid alloca
1 - 100 of 113 matches
Mail list logo