[GIT PULL] libnvdimm for 5.3
by Dan Williams
Hi Linus, please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
tags/libnvdimm-for-5.3
...to receive primarily just the virtio_pmem driver for v5.3-rc1. The
lateness is attributed to me being out last week, and a last minute
regression hunt in a pending fix / rework of libnvdimm locking. Those
fixes can wait to post-rc1.
These commits have been in multiple -next releases, and uncovered a
late sparse fixup that is appended. The touches to ext4 and xfs have
received acks. Ted's ack is here [1], it arrived after I cut the
branch. Mike reviewed the device-mapper touches.
[1]: https://lore.kernel.org/lkml/20190707163415.GA19775@mit.edu/
---
The following changes since commit 9e0babf2c06c73cda2c0cd37a1653d823adb40ec:
Linux 5.2-rc5 (2019-06-16 08:49:45 -1000)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
tags/libnvdimm-for-5.3
for you to fetch changes up to 8c2e408e73f735d2e6e8b43f9b038c9abb082939:
virtio_pmem: fix sparse warning (2019-07-16 19:44:26 -0700)
----------------------------------------------------------------
- virtio_pmem: The new virtio_pmem facility introduces a paravirtualized
persistent memory device that allows a guest VM to use DAX mechanisms to
access a host-file with host-page-cache. It arranges for MAP_SYNC to
be disabled and instead triggers a host fsync() when a 'write-cache
flush' command is sent to the virtual disk device.
- Miscellaneous small fixups.
----------------------------------------------------------------
Andy Shevchenko (1):
libnvdimm, namespace: Drop uuid_t implementation detail
Pankaj Gupta (8):
libnvdimm: nd_region flush callback support
virtio-pmem: Add virtio pmem driver
libnvdimm: add dax_dev sync flag
dm: enable synchronous dax
dax: check synchronous mapping is supported
ext4: disable map_sync for async flush
xfs: disable map_sync for async flush
virtio_pmem: fix sparse warning
drivers/acpi/nfit/core.c | 4 +-
drivers/dax/bus.c | 2 +-
drivers/dax/super.c | 19 +++++-
drivers/md/dm-table.c | 24 ++++++--
drivers/md/dm.c | 5 +-
drivers/md/dm.h | 5 +-
drivers/nvdimm/Makefile | 1 +
drivers/nvdimm/claim.c | 6 +-
drivers/nvdimm/namespace_devs.c | 8 +--
drivers/nvdimm/nd.h | 1 +
drivers/nvdimm/nd_virtio.c | 125 +++++++++++++++++++++++++++++++++++++++
drivers/nvdimm/pmem.c | 18 ++++--
drivers/nvdimm/region_devs.c | 33 ++++++++++-
drivers/nvdimm/virtio_pmem.c | 122 ++++++++++++++++++++++++++++++++++++++
drivers/nvdimm/virtio_pmem.h | 55 +++++++++++++++++
drivers/s390/block/dcssblk.c | 2 +-
drivers/virtio/Kconfig | 11 ++++
fs/ext4/file.c | 10 ++--
fs/xfs/xfs_file.c | 9 ++-
include/linux/dax.h | 41 ++++++++++++-
include/linux/libnvdimm.h | 10 +++-
include/uapi/linux/virtio_ids.h | 1 +
include/uapi/linux/virtio_pmem.h | 34 +++++++++++
23 files changed, 508 insertions(+), 38 deletions(-)
create mode 100644 drivers/nvdimm/nd_virtio.c
create mode 100644 drivers/nvdimm/virtio_pmem.c
create mode 100644 drivers/nvdimm/virtio_pmem.h
create mode 100644 include/uapi/linux/virtio_pmem.h
1 year, 6 months
[PATCH v3] virtio_pmem: fix sparse warning
by Pankaj Gupta
This patch fixes below sparse warning related to __virtio
type in virtio pmem driver. This is reported by Intel test
bot on linux-next tree.
nd_virtio.c:56:28: warning: incorrect type in assignment
(different base types)
nd_virtio.c:56:28: expected unsigned int [unsigned] [usertype] type
nd_virtio.c:56:28: got restricted __virtio32
nd_virtio.c:93:59: warning: incorrect type in argument 2
(different base types)
nd_virtio.c:93:59: expected restricted __virtio32 [usertype] val
nd_virtio.c:93:59: got unsigned int [unsigned] [usertype] ret
Reported-by: kbuild test robot <lkp(a)intel.com>
Signed-off-by: Pankaj Gupta <pagupta(a)redhat.com>
---
This fixes a warning, so submitting it as a separate
patch on top of virtio pmem series.
v2-> v3
Use __le for req/resp fields - Michael
drivers/nvdimm/nd_virtio.c | 4 ++--
include/uapi/linux/virtio_pmem.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/nvdimm/nd_virtio.c b/drivers/nvdimm/nd_virtio.c
index 8645275c08c2..10351d5b49fa 100644
--- a/drivers/nvdimm/nd_virtio.c
+++ b/drivers/nvdimm/nd_virtio.c
@@ -53,7 +53,7 @@ static int virtio_pmem_flush(struct nd_region *nd_region)
init_waitqueue_head(&req_data->host_acked);
init_waitqueue_head(&req_data->wq_buf);
INIT_LIST_HEAD(&req_data->list);
- req_data->req.type = cpu_to_virtio32(vdev, VIRTIO_PMEM_REQ_TYPE_FLUSH);
+ req_data->req.type = cpu_to_le32(VIRTIO_PMEM_REQ_TYPE_FLUSH);
sg_init_one(&sg, &req_data->req, sizeof(req_data->req));
sgs[0] = &sg;
sg_init_one(&ret, &req_data->resp.ret, sizeof(req_data->resp));
@@ -90,7 +90,7 @@ static int virtio_pmem_flush(struct nd_region *nd_region)
} else {
/* A host repsonse results in "host_ack" getting called */
wait_event(req_data->host_acked, req_data->done);
- err = virtio32_to_cpu(vdev, req_data->resp.ret);
+ err = le32_to_cpu(req_data->resp.ret);
}
kfree(req_data);
diff --git a/include/uapi/linux/virtio_pmem.h b/include/uapi/linux/virtio_pmem.h
index efcd72f2d20d..9a63ed6d062f 100644
--- a/include/uapi/linux/virtio_pmem.h
+++ b/include/uapi/linux/virtio_pmem.h
@@ -23,12 +23,12 @@ struct virtio_pmem_config {
struct virtio_pmem_resp {
/* Host return status corresponding to flush request */
- __u32 ret;
+ __le32 ret;
};
struct virtio_pmem_req {
/* command type */
- __u32 type;
+ __le32 type;
};
#endif
--
2.14.5
1 year, 6 months
[PATCH v11 00/18] kunit: introduce KUnit, the Linux kernel unit testing framework
by Brendan Higgins
## TL;DR
This patchset addresses comments from Stephen Boyd. No changes affect
the API, and all changes are specific to patches 02, 03, and 04;
however, there were some significant changes to how string_stream and
kunit_stream work under the hood.
## Background
This patch set proposes KUnit, a lightweight unit testing and mocking
framework for the Linux kernel.
Unlike Autotest and kselftest, KUnit is a true unit testing framework;
it does not require installing the kernel on a test machine or in a VM
(however, KUnit still allows you to run tests on test machines or in VMs
if you want[1]) and does not require tests to be written in userspace
running on a host kernel. Additionally, KUnit is fast: From invocation
to completion KUnit can run several dozen tests in about a second.
Currently, the entire KUnit test suite for KUnit runs in under a second
from the initial invocation (build time excluded).
KUnit is heavily inspired by JUnit, Python's unittest.mock, and
Googletest/Googlemock for C++. KUnit provides facilities for defining
unit test cases, grouping related test cases into test suites, providing
common infrastructure for running tests, mocking, spying, and much more.
### What's so special about unit testing?
A unit test is supposed to test a single unit of code in isolation,
hence the name. There should be no dependencies outside the control of
the test; this means no external dependencies, which makes tests orders
of magnitudes faster. Likewise, since there are no external dependencies,
there are no hoops to jump through to run the tests. Additionally, this
makes unit tests deterministic: a failing unit test always indicates a
problem. Finally, because unit tests necessarily have finer granularity,
they are able to test all code paths easily solving the classic problem
of difficulty in exercising error handling code.
### Is KUnit trying to replace other testing frameworks for the kernel?
No. Most existing tests for the Linux kernel are end-to-end tests, which
have their place. A well tested system has lots of unit tests, a
reasonable number of integration tests, and some end-to-end tests. KUnit
is just trying to address the unit test space which is currently not
being addressed.
### More information on KUnit
There is a bunch of documentation near the end of this patch set that
describes how to use KUnit and best practices for writing unit tests.
For convenience I am hosting the compiled docs here[2].
Additionally for convenience, I have applied these patches to a
branch[3]. The repo may be cloned with:
git clone https://kunit.googlesource.com/linux
This patchset is on the kunit/rfc/v5.2/v11 branch.
## Changes Since Last Version
- Went back to using spinlock in `struct string_stream`. Needed for so
that it is compatible with different GFP flags to address comment from
Stephen.
- Added string_stream_append function to string_stream API. - suggested
by Stephen.
- Made all string fragments and other allocations internal to
string_stream and kunit_stream managed by the KUnit resource
management API.
[1] https://google.github.io/kunit-docs/third_party/kernel/docs/usage.html#ku...
[2] https://google.github.io/kunit-docs/third_party/kernel/docs/
[3] https://kunit.googlesource.com/linux/+/kunit/rfc/v5.2/v11
--
2.22.0.510.g264f2c817a-goog
1 year, 6 months
RE: JIRA Agile and Clarizen -Vendors List
by Scarlett Thomas
Hi,
Hope you're doing great.
I sent an email to you regarding the software users list. If you are
interested, kindly let me know the target geography and which software users
list you wish to target. So that I can get back with counts and more
information.
Looking forward to your response.
Warm Regards,
Scarlett Thomas
From: Scarlett Thomas [mailto:scarlett.thomas@technologyusersinfo.com]
Sent: Wednesday, July 10, 2019 11:51 AM
To: 'linux-nvdimm(a)lists.01.org'
Subject: JIRA Agile and Clarizen -Vendors List
Hi,
Hope today finds you well!
We are a global database firm and we assist companies in providing business
contacts based on their target segment/audience. We can provide you with a
customized list based on your needs.
I am writing to you in regards to our recent list release, and check if you
would be interested in acquiring our recently verified Project Collaboration
Software Users list and other Software's user's database.
We have user's information for below mentioned:
* Basecamp
* Atlassian Confluence
* Smartsheet
* JIRA Agile
* Redmine
* FunctionFox
* Clarizen
* Wrike
* ProjectManager.com and much more.
This list comes with full contact details like: "Company name, contact first
last name, title, verified email address, phone number, fax number, mailing
address, city, state, zip code, country, revenue size, employee count,
Industry specification and website URL".
Kindly let me know the target geography and which software users list you
wish to target. So that I can get back with counts and more information.
Looking forward to your response.
Warm Regards,
Scarlett Thomas || Sr. Online Marketing Executive
Dedicated to your success
1 year, 6 months
[PATCH v10 00/18] kunit: introduce KUnit, the Linux kernel unit testing framework
by Brendan Higgins
## TL;DR
This patchset addresses comments from Stephen Boyd. Most changes are
pretty minor, but this does fix a couple of bugs pointed out by Stephen.
I imagine that Stephen will probably have some more comments, but I
wanted to get this out for him to look at as soon as possible.
## Background
This patch set proposes KUnit, a lightweight unit testing and mocking
framework for the Linux kernel.
Unlike Autotest and kselftest, KUnit is a true unit testing framework;
it does not require installing the kernel on a test machine or in a VM
(however, KUnit still allows you to run tests on test machines or in VMs
if you want[1]) and does not require tests to be written in userspace
running on a host kernel. Additionally, KUnit is fast: From invocation
to completion KUnit can run several dozen tests in about a second.
Currently, the entire KUnit test suite for KUnit runs in under a second
from the initial invocation (build time excluded).
KUnit is heavily inspired by JUnit, Python's unittest.mock, and
Googletest/Googlemock for C++. KUnit provides facilities for defining
unit test cases, grouping related test cases into test suites, providing
common infrastructure for running tests, mocking, spying, and much more.
### What's so special about unit testing?
A unit test is supposed to test a single unit of code in isolation,
hence the name. There should be no dependencies outside the control of
the test; this means no external dependencies, which makes tests orders
of magnitudes faster. Likewise, since there are no external dependencies,
there are no hoops to jump through to run the tests. Additionally, this
makes unit tests deterministic: a failing unit test always indicates a
problem. Finally, because unit tests necessarily have finer granularity,
they are able to test all code paths easily solving the classic problem
of difficulty in exercising error handling code.
### Is KUnit trying to replace other testing frameworks for the kernel?
No. Most existing tests for the Linux kernel are end-to-end tests, which
have their place. A well tested system has lots of unit tests, a
reasonable number of integration tests, and some end-to-end tests. KUnit
is just trying to address the unit test space which is currently not
being addressed.
### More information on KUnit
There is a bunch of documentation near the end of this patch set that
describes how to use KUnit and best practices for writing unit tests.
For convenience I am hosting the compiled docs here[2].
Additionally for convenience, I have applied these patches to a
branch[3]. The repo may be cloned with:
git clone https://kunit.googlesource.com/linux
This patchset is on the kunit/rfc/v5.2/v10 branch.
## Changes Since Last Version
- Went back to using spinlock in `struct kunit`. Needed for resource
management API. Thanks to Stephen for this change.
- Fixed bug where an init failure may not be recorded as a failure in
patch 01/18.
- Added append method to string_stream as suggested by Stephen.
- Mostly pretty minor changes after that, which mostly pertain to
string_stream and kunit_stream.
[1] https://google.github.io/kunit-docs/third_party/kernel/docs/usage.html#ku...
[2] https://google.github.io/kunit-docs/third_party/kernel/docs/
[3] https://kunit.googlesource.com/linux/+/kunit/rfc/v5.2/v10
--
2.22.0.510.g264f2c817a-goog
1 year, 6 months
💃 Методики бюджетирования
by Dominica
ПРОГРАММА ДЛЯ УПРАВЛЕНЦЕВ
Управленческий учет. Показатели
эффективности. Бюджеты
Заявка на участие›
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
День 1. Организация Управленческого
Учета и отчетности
1. Как создать систему управленческого
учета и отчетности
- Какая информация должна быть в
управленческом учете.
- Как совместить бухгалтерский и
управленческий учет.
- План внедрения управленческого
учета.
- Разработка учетной политики, что
должно быть прописано
- Шаги по внедрению управленческого
учета
2. Основные управленческие отчеты и
основные KPI
- Управленческий Баланс – источник
информации об инвестициях компании
- Отчет о прибылях и убытках (ОПУ)
- Отчет о движении денежных средств
(ОДДС)
- Отчет по ключевым показателям
эффективности для руководителя
3. Анализ финансовой отчетности.
Основные финансовые коэффициенты:
- Рентабельность деятельности
(продаж), нормы прибыли
- Деловая активность: оборачиваемость
активов, управление запасами,
дебиторской/кредиторской
задолженностями
- Рентабельность активов (ROA)
- Финансовая устойчивость и
ликвидность
- Рентабельность собственного
капитала (ROE)
- Показатели оборачиваемости
- Анализ рентабельности продаж
- Рентабельность капитала. Пирамида
DuPont
4. Организация Управленческого Учета
- Основные процессы управленческого
учета
- Как выбрать программный продукт для
ведения управленческого учета
- Графики документооборота
- Положение о финансовой службе
- Примеры положений, техкарт и
регламентов
- Правила управленческого учета, о
каких не стоит забывать
День 2. Бюджетирование с шаблонами
бюджетов и финансовой моделью
1. Организация бюджетного управления.
Как управлять с помощью бюджетов
- Как быстро привести дела в порядок в
финансах
- Что нам хочет сказать прибыль?
- Как оперативно и эффективно
управлять финансовыми результатами с
помощью бюджетов
- Центры финансовой ответственности
(ЦФО)
- Методики бюджетирования
- Объекты бюджетирования
- Классификатор бюджетов: Основные
виды бюджетов
- Что выбрать статичный бюджет или
скользящее планирование
2. Прогнозирование результатов
деятельности компании за 10 минут
- В чем разница между прогнозами и
бюджетами
- Серьезные разговоры об
эффективности
- Что необходимо заложить в основу
прогнозов и бюджетов
- Процесс прогнозирования и
финансовая модель в 3-х сценариях
3. Построение финансовых бюджетов за 3
дня для 1 бизнес-направления
- Какие исходные данные нужны
- Какие гипотезы нужны для
формирования бюджетов
- Бюджет по прибыли
- Бюджет по балансовому листу
- Мастер-бюджет
- Бюджет движения денег косвенным
методом
- Расчет потребности в финансировании
- Вспомогательные расчеты
4. Техники формирования бюджетов
компании подразделений
Бюджетная структура компании и
финансовые бюджеты компании
- Финансовая модель расширенная
- Бюджет доходов и расходов (прибылей
и убытков) по статьям и по элементам
- Бюджет движения денежных средств
Функциональные бюджеты
- Бюджет продаж, Бюджет поступлений от
клиентов
- Бюджет валовой прибыли, Бюджет
товарных остатков
- Бюджет закупок по себестоимости и
закупочной стоимости
- Бюджетирование расходов на
персонал, Бюджет выплат персоналу
- Бюджет налогов на фонд оплаты труда
(ФОТ), Бюджет выплат налогов
- Бюджет командировочных расходов
- Бюджет налогов, Бюджет финансовой
деятельности
Бюджеты подразделений. Бюджеты по ЦФО
1. Основные показатели подразделений
2. Бюджеты доходообразующих
подразделений
3. Бюджеты сервисных подразделений:
Бюджет склада,
транспортно-экспедиционной службы,
административно-хозяйственной
службы, финансовой службы и
бухгалтерии, бюджет ИТ, службы
персонала, управления
Стоимость участия:
6,200.00 грн. - за одного участника.
Для второго и третьего участника
скидки 5% и 7% соответственно.
Заявка на участие›
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
Если у Вас возникнут дополнительные
вопросы -
мы всегда на связи:
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
http://stata.liders.in.ua/campaigns/ff3475kz9z8fd/track-url/ss2733y6wjd1a...
Уважаемый подписчик. Данное письмо не
требует ответа.
Сooбщение пoдгoтoвленo и aдресoвaнo нa
электрoнный aдрес linux-nvdimm(a)lists.01.org.
Если Вы не подписывались на рассылки
просим не получать рассылки List-Unsubscribe
http://stata.liders.in.ua/lists/hh399nbeqgd34/unsubscribe/ss2733y6wjd1a/f...
или пожаловаться на Спам
http://stata.liders.in.ua/lists/hh399nbeqgd34/unsubscribe/ss2733y6wjd1a/f...
1 year, 6 months
中港运输+香港仓储+拼箱+装卸柜服务
by 中港运输+香港仓储+拼箱+装卸柜服务
中港运输+香港仓储+拼箱+装卸柜服务
中港运输服务主要从事省内各地到香港葵涌码头、机场及其他站场的散货拼车
整车运输服务及香港到深圳的接驳运输,并可代理进出口报关报检配套服务.
■ 大陆上门提货,运输报关一条龙服务
■ 香港有卸货平台,可提供装卸货,拼箱,仓储服务
■ 九龙/新界/港岛派送公司以及仓库
■ 香港机场/仓码头仓入仓服务
中港货运有限公司
联系人:JackTEL:+852 5101 5550Mobile :+86-13642980935E-mail : wuliu56sales01(a)hotmail.xn--com-k81k 港:葵涌三号货柜码头物流中心A座4楼
1 year, 6 months
[PATCH v2] virtio_pmem: fix sparse warning
by Pankaj Gupta
This patch fixes below sparse warning related to __virtio
type in virtio pmem driver. This is reported by Intel test
bot on linux-next tree.
nd_virtio.c:56:28: warning: incorrect type in assignment
(different base types)
nd_virtio.c:56:28: expected unsigned int [unsigned] [usertype] type
nd_virtio.c:56:28: got restricted __virtio32
nd_virtio.c:93:59: warning: incorrect type in argument 2
(different base types)
nd_virtio.c:93:59: expected restricted __virtio32 [usertype] val
nd_virtio.c:93:59: got unsigned int [unsigned] [usertype] ret
Reported-by: kbuild test robot <lkp(a)intel.com>
Signed-off-by: Pankaj Gupta <pagupta(a)redhat.com>
---
This fixes a warning, so submitting it as a separate
patch on top of virtio pmem series.
include/uapi/linux/virtio_pmem.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/uapi/linux/virtio_pmem.h b/include/uapi/linux/virtio_pmem.h
index efcd72f2d20d..7a7435281362 100644
--- a/include/uapi/linux/virtio_pmem.h
+++ b/include/uapi/linux/virtio_pmem.h
@@ -10,7 +10,7 @@
#ifndef _UAPI_LINUX_VIRTIO_PMEM_H
#define _UAPI_LINUX_VIRTIO_PMEM_H
-#include <linux/types.h>
+#include <linux/virtio_types.h>
#include <linux/virtio_ids.h>
#include <linux/virtio_config.h>
@@ -23,12 +23,12 @@ struct virtio_pmem_config {
struct virtio_pmem_resp {
/* Host return status corresponding to flush request */
- __u32 ret;
+ __virtio32 ret;
};
struct virtio_pmem_req {
/* command type */
- __u32 type;
+ __virtio32 type;
};
#endif
--
2.20.1
1 year, 6 months
[PATCH] virtio_pmem: fix sparse warning
by Pankaj Gupta
This patch fixes below sparse warning related to __virtio
type in virtio pmem driver. This is reported by Intel test
bot on linux-next tree.
nd_virtio.c:56:28: warning: incorrect type in assignment (different base types)
nd_virtio.c:56:28: expected unsigned int [unsigned] [usertype] type
nd_virtio.c:56:28: got restricted __virtio32
nd_virtio.c:93:59: warning: incorrect type in argument 2 (different base types)
nd_virtio.c:93:59: expected restricted __virtio32 [usertype] val
nd_virtio.c:93:59: got unsigned int [unsigned] [usertype] ret
Signed-off-by: Pankaj Gupta <pagupta(a)redhat.com>
Reported-by: kbuild test robot <lkp(a)intel.com>
---
This fixes a warning, so submitting it as a separate
patch on top of virtio pmem series.
include/uapi/linux/virtio_pmem.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/virtio_pmem.h b/include/uapi/linux/virtio_pmem.h
index efcd72f2d20d..f89129bf1f84 100644
--- a/include/uapi/linux/virtio_pmem.h
+++ b/include/uapi/linux/virtio_pmem.h
@@ -23,12 +23,12 @@ struct virtio_pmem_config {
struct virtio_pmem_resp {
/* Host return status corresponding to flush request */
- __u32 ret;
+ __virtio32 ret;
};
struct virtio_pmem_req {
/* command type */
- __u32 type;
+ __virtio32 type;
};
#endif
--
2.20.1
1 year, 6 months