Revision 09d9e4d041876684d33f21d02bcdaea6586734f1 authored by Avri Altman on 30 October 2021, 06:23:01 UTC, committed by Martin K. Petersen on 30 October 2021, 14:01:01 UTC
The Host Performance Buffer feature allows UFS read commands to carry the physical media addresses along with the LBAs, thus allowing less internal L2P-table switches in the device. HPB1.0 allowed a single LBA, while HPB2.0 increases this capacity up to 255 blocks. Carrying more than a single record, the read operation is no longer purely of type "read" but a "hybrid" command: Writing the physical address to the device in one operation and reading back the required payload in another. The JEDEC HPB spec defines two commands for this operation: HPB-WRITE-BUFFER (0x2) to write the physical addresses to device, and HPB-READ to read the payload. With the current HPB design the UFS driver has no alternative but to divide the READ request into 2 separate commands: HPB-WRITE-BUFFER and HPB-READ. This causes a great deal of aggravation to the block layer guys who demanded that we completely revert the entire HPB driver regardless of the huge amount of corporate effort already invested in it. As a compromise, remove only the pieces that implement the 2.0 specification. This is done as a matter of urgency for the final 5.15 release. Link: https://lore.kernel.org/r/20211030062301.248-1-avri.altman@wdc.com Tested-by: Avri Altman <avri.altman@wdc.com> Tested-by: Bean Huo <beanhuo@micron.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Bean Huo <beanhuo@micron.com> Co-developed-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Avri Altman <avri.altman@wdc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent 61a9f25
File | Mode | Size |
---|---|---|
damon | ||
kasan | ||
kfence | ||
Kconfig | -rw-r--r-- | 28.3 KB |
Kconfig.debug | -rw-r--r-- | 5.6 KB |
Makefile | -rw-r--r-- | 4.7 KB |
backing-dev.c | -rw-r--r-- | 27.3 KB |
balloon_compaction.c | -rw-r--r-- | 8.2 KB |
bootmem_info.c | -rw-r--r-- | 3.4 KB |
cleancache.c | -rw-r--r-- | 9.8 KB |
cma.c | -rw-r--r-- | 15.4 KB |
cma.h | -rw-r--r-- | 1.4 KB |
cma_debug.c | -rw-r--r-- | 4.5 KB |
cma_sysfs.c | -rw-r--r-- | 2.4 KB |
compaction.c | -rw-r--r-- | 83.5 KB |
debug.c | -rw-r--r-- | 8.2 KB |
debug_page_ref.c | -rw-r--r-- | 1.4 KB |
debug_vm_pgtable.c | -rw-r--r-- | 38.0 KB |
dmapool.c | -rw-r--r-- | 13.6 KB |
early_ioremap.c | -rw-r--r-- | 6.7 KB |
fadvise.c | -rw-r--r-- | 5.3 KB |
failslab.c | -rw-r--r-- | 1.4 KB |
filemap.c | -rw-r--r-- | 111.4 KB |
frontswap.c | -rw-r--r-- | 14.2 KB |
gup.c | -rw-r--r-- | 86.0 KB |
gup_test.c | -rw-r--r-- | 5.6 KB |
gup_test.h | -rw-r--r-- | 938 bytes |
highmem.c | -rw-r--r-- | 19.4 KB |
hmm.c | -rw-r--r-- | 16.7 KB |
huge_memory.c | -rw-r--r-- | 85.5 KB |
hugetlb.c | -rw-r--r-- | 176.8 KB |
hugetlb_cgroup.c | -rw-r--r-- | 21.5 KB |
hugetlb_vmemmap.c | -rw-r--r-- | 13.0 KB |
hugetlb_vmemmap.h | -rw-r--r-- | 1.1 KB |
hwpoison-inject.c | -rw-r--r-- | 2.6 KB |
init-mm.c | -rw-r--r-- | 1.6 KB |
internal.h | -rw-r--r-- | 20.8 KB |
interval_tree.c | -rw-r--r-- | 3.1 KB |
io-mapping.c | -rw-r--r-- | 993 bytes |
ioremap.c | -rw-r--r-- | 1.2 KB |
khugepaged.c | -rw-r--r-- | 59.3 KB |
kmemleak.c | -rw-r--r-- | 56.5 KB |
ksm.c | -rw-r--r-- | 88.5 KB |
list_lru.c | -rw-r--r-- | 14.1 KB |
maccess.c | -rw-r--r-- | 9.1 KB |
madvise.c | -rw-r--r-- | 32.4 KB |
mapping_dirty_helpers.c | -rw-r--r-- | 10.5 KB |
memblock.c | -rw-r--r-- | 59.6 KB |
memcontrol.c | -rw-r--r-- | 192.6 KB |
memfd.c | -rw-r--r-- | 7.9 KB |
memory-failure.c | -rw-r--r-- | 58.8 KB |
memory.c | -rw-r--r-- | 148.2 KB |
memory_hotplug.c | -rw-r--r-- | 66.2 KB |
mempolicy.c | -rw-r--r-- | 74.9 KB |
mempool.c | -rw-r--r-- | 15.9 KB |
memremap.c | -rw-r--r-- | 14.4 KB |
memtest.c | -rw-r--r-- | 2.8 KB |
migrate.c | -rw-r--r-- | 85.7 KB |
mincore.c | -rw-r--r-- | 7.0 KB |
mlock.c | -rw-r--r-- | 22.4 KB |
mm_init.c | -rw-r--r-- | 5.3 KB |
mmap.c | -rw-r--r-- | 101.7 KB |
mmap_lock.c | -rw-r--r-- | 6.2 KB |
mmu_gather.c | -rw-r--r-- | 8.5 KB |
mmu_notifier.c | -rw-r--r-- | 35.0 KB |
mmzone.c | -rw-r--r-- | 2.2 KB |
mprotect.c | -rw-r--r-- | 17.7 KB |
mremap.c | -rw-r--r-- | 27.8 KB |
msync.c | -rw-r--r-- | 2.8 KB |
nommu.c | -rw-r--r-- | 44.5 KB |
oom_kill.c | -rw-r--r-- | 31.5 KB |
page-writeback.c | -rw-r--r-- | 86.7 KB |
page_alloc.c | -rw-r--r-- | 262.5 KB |
page_counter.c | -rw-r--r-- | 6.8 KB |
page_ext.c | -rw-r--r-- | 11.1 KB |
page_idle.c | -rw-r--r-- | 5.2 KB |
page_io.c | -rw-r--r-- | 11.2 KB |
page_isolation.c | -rw-r--r-- | 9.2 KB |
page_owner.c | -rw-r--r-- | 15.9 KB |
page_poison.c | -rw-r--r-- | 2.5 KB |
page_reporting.c | -rw-r--r-- | 10.3 KB |
page_reporting.h | -rw-r--r-- | 1.6 KB |
page_vma_mapped.c | -rw-r--r-- | 8.7 KB |
pagewalk.c | -rw-r--r-- | 15.5 KB |
percpu-internal.h | -rw-r--r-- | 6.6 KB |
percpu-km.c | -rw-r--r-- | 3.2 KB |
percpu-stats.c | -rw-r--r-- | 5.9 KB |
percpu-vm.c | -rw-r--r-- | 11.7 KB |
percpu.c | -rw-r--r-- | 100.9 KB |
pgalloc-track.h | -rw-r--r-- | 1.3 KB |
pgtable-generic.c | -rw-r--r-- | 5.6 KB |
process_vm_access.c | -rw-r--r-- | 8.2 KB |
ptdump.c | -rw-r--r-- | 4.0 KB |
readahead.c | -rw-r--r-- | 19.5 KB |
rmap.c | -rw-r--r-- | 67.9 KB |
rodata_test.c | -rw-r--r-- | 1.3 KB |
secretmem.c | -rw-r--r-- | 5.5 KB |
shmem.c | -rw-r--r-- | 107.8 KB |
shuffle.c | -rw-r--r-- | 4.7 KB |
shuffle.h | -rw-r--r-- | 1.2 KB |
slab.c | -rw-r--r-- | 106.5 KB |
slab.h | -rw-r--r-- | 17.3 KB |
slab_common.c | -rw-r--r-- | 33.3 KB |
slob.c | -rw-r--r-- | 18.2 KB |
slub.c | -rw-r--r-- | 152.8 KB |
sparse-vmemmap.c | -rw-r--r-- | 15.7 KB |
sparse.c | -rw-r--r-- | 26.0 KB |
swap.c | -rw-r--r-- | 31.2 KB |
swap_cgroup.c | -rw-r--r-- | 5.1 KB |
swap_slots.c | -rw-r--r-- | 9.2 KB |
swap_state.c | -rw-r--r-- | 24.0 KB |
swapfile.c | -rw-r--r-- | 96.4 KB |
truncate.c | -rw-r--r-- | 25.0 KB |
usercopy.c | -rw-r--r-- | 9.5 KB |
userfaultfd.c | -rw-r--r-- | 17.6 KB |
util.c | -rw-r--r-- | 26.6 KB |
vmacache.c | -rw-r--r-- | 2.7 KB |
vmalloc.c | -rw-r--r-- | 100.2 KB |
vmpressure.c | -rw-r--r-- | 13.8 KB |
vmscan.c | -rw-r--r-- | 133.4 KB |
vmstat.c | -rw-r--r-- | 54.2 KB |
workingset.c | -rw-r--r-- | 21.4 KB |
z3fold.c | -rw-r--r-- | 47.0 KB |
zbud.c | -rw-r--r-- | 18.4 KB |
zpool.c | -rw-r--r-- | 11.5 KB |
zsmalloc.c | -rw-r--r-- | 61.0 KB |
zswap.c | -rw-r--r-- | 38.9 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...