{"id":2221621,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2221621/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/cover/20260410-write_booster-v4-0-d58a680587df@samsung.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.1/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260410-write_booster-v4-0-d58a680587df@samsung.com>","date":"2026-04-10T01:50:02","name":"[v4,0/5] hw/ufs: Add Write Booster Support on UFS","submitter":{"id":93039,"url":"http://patchwork.ozlabs.org/api/1.1/people/93039/?format=json","name":"Jaemyung Lee","email":"ldc.jml@gmail.com"},"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/cover/20260410-write_booster-v4-0-d58a680587df@samsung.com/mbox/","series":[{"id":499376,"url":"http://patchwork.ozlabs.org/api/1.1/series/499376/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=499376","date":"2026-04-10T01:50:02","name":"hw/ufs: Add Write Booster Support on UFS","version":4,"mbox":"http://patchwork.ozlabs.org/series/499376/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2221621/comments/","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=MnSCXmr4;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsKXr4kHzz20HT\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 11:51:39 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wB11F-0004Mo-45; Thu, 09 Apr 2026 21:50:49 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <ldc.jml@gmail.com>) id 1wB11D-0004M6-Lu\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 21:50:47 -0400","from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <ldc.jml@gmail.com>) id 1wB11B-0006Og-ST\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 21:50:47 -0400","by mail-pg1-x52a.google.com with SMTP id\n 41be03b00d2f7-c76af79f029so611642a12.3\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 18:50:44 -0700 (PDT)","from [172.17.0.5] ([168.126.243.22])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b2d4f0b284sm8832245ad.52.2026.04.09.18.50.41\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 09 Apr 2026 18:50:42 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775785843; x=1776390643; darn=nongnu.org;\n h=cc:to:content-transfer-encoding:mime-version:message-id:date\n :subject:from:from:to:cc:subject:date:message-id:reply-to;\n bh=8UgzEvC7Qzlm0WmAtQuOk8elkhene5DgayZwpRXzL0Q=;\n b=MnSCXmr42O884EjxjKRuYWjVaVwVEZoO7ji/cjWezur4RueoVtSQM5D6KzBKqYa1Az\n Io0y9U0JWw6uIV1fa+wjbqIBjUJJ/4U5NMCIL9fHPjFFokMb6ns0kU0wYvJHU0OvNvJ+\n rPWK+VM1Q8zSTamoVviGfyhyce7baiZkxOstJ2cOpbEdDqWGjMcnAjvb23ft+TTyAvoL\n CFF0lYY/r8KgNxFsCAldK8WM/+WzHeAxuMmiIK1JJyqu87zuCIJPTxBuOBDdnsNld2zj\n 2z3sSWswKSRNy9C+1oxY/8eIrEpUiFMQwMxg5FCGIli/La5yQvZyXKXrKQmmWllZqUty\n Je3A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775785843; x=1776390643;\n h=cc:to:content-transfer-encoding:mime-version:message-id:date\n :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=8UgzEvC7Qzlm0WmAtQuOk8elkhene5DgayZwpRXzL0Q=;\n b=DTpHBWPcsgLPrwUcSWGMAUI3lIaUTtiltSR56cTjmNmvt6Kr3diBc/SCJ4CHUN+MRN\n 6p/9p9ow0Y7N3WckhUA/LCk1zT31Y4+pZ93dVbMJSJlNgwUzUvrwpvQbYCil0FqevbPe\n zQh5zH7hZ/I/qZQpiGqVjZe1mKY509q146GhcMvYcbSehBOt2DMqXfXt2Qg6NsngDVAf\n OVu5QpU+a66cJuf2wWR2P016hSC2hYGW17qU6dEUuPa/A96cCqMKu3202gmOEPoYWwl/\n 6cw36I9ZFSe2RDU5eLO7XhkJ6dZVadHEg96BcvC2rC1zy2NvD81KeSnoTFnloFv5x4OS\n 2WYw==","X-Gm-Message-State":"AOJu0Yzt8GDpho8h4eThbWWwEgrkQBzIye91El4z0YDWP/sExqC+yhXT\n z8HJhlGV9OUkQGYS9MqLa+uMrzbIWW7BjIhai/hAnk52BU4lwk0PlkPL","X-Gm-Gg":"AeBDieuYEnVZRubQbmQJMulu0m+I5mjpXPMlb0xBafZjim4TBb8rpd+Hgm3PaSF0IYw\n R5hSs7vyf457CUg9f/9yIPOjer9C/jRLy5FZzuq0ZesYnOeUv5+M3gt/erZOZJDmq/bxW8zkk1W\n YK2g4QUmI+ToPtECiXAPtB1KxWffQetypXZjln1qRbhcwz8OM3Jpl0nKVXEXjPTeR8G5ngWaE2o\n 3hUWgR8iqZZvnhfivFWN1xeE6XqiSK8InaZ8r25QCLfN9fXxI2ROaXtMa2deDWKcT5z4sJB4n94\n Sn9tbSHHPxpRB50EB2RE0a6mrHP+sBi0rSwfj4nCUCaAvosNnKTzb8GA4NY7193qb2nYKr08ZHf\n A6QUJ9i8RsbZr0Pc1nqrqEIynqa8tRUs+7UaHcuur5ilxKvFwON63au2sinLpu1eGPewqf9oDA+\n Xyv0vwHMDNhBRKaAHwvuCFPWfenGm9ow==","X-Received":"by 2002:a17:903:1ce:b0:2b0:4b3a:9b4d with SMTP id\n d9443c01a7336-2b2d5a14bbbmr12163645ad.20.1775785843346;\n Thu, 09 Apr 2026 18:50:43 -0700 (PDT)","From":"Jaemyung Lee <ldc.jml@gmail.com>","X-Google-Original-From":"Jaemyung Lee <jaemyung.lee@samsung.com>","Subject":"[PATCH v4 0/5] hw/ufs: Add Write Booster Support on UFS","Date":"Fri, 10 Apr 2026 10:50:02 +0900","Message-Id":"<20260410-write_booster-v4-0-d58a680587df@samsung.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","X-B4-Tracking":"v=1; b=H4sIAEpX2GkC/3XMQQ6CMBCF4auQrq2ZFgTqynsYY0o7QBdQ08GqI\n dzdwkpNXL6XfP/MCINDYsdsZgGjI+fHNIpdxkyvxw65s2kzCbKEAir+CG7Ca+M9TRh4XSsNpdH\n WHBRL5hawdc+td76k3TuafHht+SjX918pSg7c2qqSTZODUMWJ9ED3sdsbP7C1FfNPr359vnnZC\n gNCKFN/+2VZ3oSQ/5fsAAAA","X-Change-ID":"20260407-write_booster-889a06cadc59","To":"qemu-devel@nongnu.org","Cc":"Jeuk Kim <jeuk20.kim@samsung.com>, Kevin Wolf <kwolf@redhat.com>,\n Hanna Reitz <hreitz@redhat.com>, qemu-block@nongnu.org,\n Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>,\n Paolo Bonzini <pbonzini@redhat.com>,\n Jaemyung Lee <jaemyung.lee@samsung.com>","X-Mailer":"b4 0.14.2","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1775785840; l=1980;\n i=jaemyung.lee@samsung.com; s=20260402; h=from:subject:message-id;\n bh=rnd5Nyp+VQVcTpDZQYQdk1toG+vCPRXlBsV2/rg99S8=;\n b=uqrLYI10JaB18IuJoqb0NcR27wUEgxEamR7tGTQp5AlbVu/ve8FXZOD6GUM5JL3UkTnxtw6pJ\n d4HtU5OQusOBx435SEfnGanwrXqMKbB2/1+4gZReuXskrmao9jUBnBB","X-Developer-Key":"i=jaemyung.lee@samsung.com; a=ed25519;\n pk=bZPd7A/kteUO62FfUM6IrI1LuBPe5QrcqfvsitM1ZjE=","Received-SPF":"pass client-ip=2607:f8b0:4864:20::52a;\n envelope-from=ldc.jml@gmail.com; helo=mail-pg1-x52a.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Currently, the QEMU-UFS emulation is implemented based on the JEDEC UFS\n4.0 Specification and does not support the operation related to UFS Extended\nFeatures which is defined with latest UFS Specifications.\n\nThis series modifies the UFS core implementation to align with the JEDEC\nUFS 4.1 Specification[1], and adds a Write Booster UFS Extended Feature\nsupportability.\n\nTested: x86-64 KVM, upstream QEMU with Debian GNU/Linux 10\n\n[1]\nhttps://jedec.org/standards-documents/focus/flash/universal-flash-storage-ufs\n\nSigned-off-by: Jaemyung Lee <jaemyung.lee@samsung.com>\n---\nChanges in v4:\n- Fixed MCQ idle check: skip unallocated qid\n- Removed unused arguments from WB accounting functions\n- Added SCSI command status guard for WB accounting at completion\n\nChanges in v3:\n- Fixed constraint check return value\n- Fixed WB buffer consume amount with transfered_len\n- Fixed MCQ idle check:\n - Added NULL exception check\n - Added CQ pending request check\n- Link to v2: https://lore.kernel.org/qemu-devel/20260407-write_booster-v2-0-dd772bb30194@samsung.com\n\nChanges in v2:\n- Fixed MCQ idle check\n- Added WRITE_6/WRITE_16 handling\n- Fixed WB buffer consume timing\n- Added constraint check\n- Fixed uint64_t casting for unit calculation\n---\n\n---\nJaemyung Lee (5):\n      hw/ufs: Apply UFS 4.1 Specification\n      hw/ufs: Modify flag handling operation\n      hw/ufs: Add idle operation\n      hw/ufs: Add UFS Write Booster Support\n      tests/qtest: Add UFS Write Booster QTest\n\n hw/ufs/lu.c            |  97 +++++++-\n hw/ufs/ufs.c           | 605 +++++++++++++++++++++++++++++++++++++++++++++----\n hw/ufs/ufs.h           |  49 ++++\n include/block/ufs.h    | 110 ++++++++-\n tests/qtest/ufs-test.c | 176 ++++++++++++++\n 5 files changed, 992 insertions(+), 45 deletions(-)\n---\nbase-commit: b6a7d06213e5d2f7d124d16418bc289c4a8a4b82\nchange-id: 20260407-write_booster-889a06cadc59\n\nBest regards,"}