Re:生产管理人员必备的技能
by 吴总
---- 原邮件信息 -----
收件人: "linux-nvdimm"<linux-nvdimm(a)lists.01.org>;
请 查 收 附 件
5 years
国际贸易的相关内幕解析
by 彭总
编号:335012
收件人: "linux-nvdimm"<linux-nvdimm(a)lists.01.org>;
附 件为 大纲,请 您查 阅
5 years
转发:企业档案管理的规范水平和管理效率
by 苏州工业园佳徕办公用品公司
急件
收件人: "linux-nvdimm"<linux-nvdimm(a)lists.01.org>;
亲,请 您 查 阅 附 件
5 years
[PATCH] ndctl: fix uninitialized bb_count in list command
by Dave Jiang
bb_count would be 0 if util_region_badblocks_to_json() returns NULL.
Initialize bb_count to 0 by default.
Reported-by: Andy Rudoff <andy.rudoff(a)intel.com>
Signed-off-by: Dave Jiang <dave.jiang(a)intel.com>
---
ndctl/list.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ndctl/list.c b/ndctl/list.c
index 4d5050c..ad710ed 100644
--- a/ndctl/list.c
+++ b/ndctl/list.c
@@ -138,7 +138,7 @@ static struct json_object *region_to_json(struct ndctl_region *region,
struct json_object *jobj, *jbbs, *jmappings = NULL;
struct ndctl_interleave_set *iset;
struct ndctl_mapping *mapping;
- unsigned int bb_count;
+ unsigned int bb_count = 0;
if (!jregion)
return NULL;
5 years
[RFC 0/6] Add support for Heterogeneous Memory Attribute Table
by Ross Zwisler
==== Quick summary ====
This series adds kernel support for the Heterogeneous Memory Attribute
Table (HMAT) table, newly defined in ACPI 6.2:
http://www.uefi.org/sites/default/files/resources/ACPI_6_2.pdf
The HMAT table, in concert with the existing System Resource Affinity Table
(SRAT), provides users with information about memory initiators and memory
targets in the system.
A "memory initiator" in this case is any device such as a CPU or a separate
memory I/O device that can initiate a memory request. A "memory target" is
a CPU-accessible physical address range.
The HMAT provides performance information (expected latency and bandwidth,
etc.) for various (initiator,target) pairs. This is mostly motivated by
the need to optimally use performance-differentiated DRAM, but it also
allows us to describe the performance characteristics of persistent memory.
The purpose of this RFC is to gather feedback on the different options for
enabling the HMAT in the kernel and in userspace.
==== Lots of details ====
The HMAT only covers CPU-addressable memory types, not on-device memory
like what we have with Jerome Glisse's HMM series:
https://lkml.org/lkml/2017/5/24/731
One major conceptual change in ACPI 6.2 related to this work is that
proximity domains no longer need to contain a processor. We can now have
memory-only proximity domains, which means that we can now have memory-only
Linux NUMA nodes.
Here is an example configuration where we have a single processor, one
range of regular memory and one range of High Bandwidth Memory (HBM):
+---------------+ +----------------+
| Processor | | Memory |
| prox domain 0 +---+ prox domain 1 |
| NUMA node 1 | | NUMA node 2 |
+-------+-------+ +----------------+
|
+-------+----------+
| HBM |
| prox domain 2 |
| NUMA node 0 |
+------------------+
This gives us one initiator (the processor) and two targets (the two memory
ranges). Each of these three has its own ACPI proximity domain and
associated Linux NUMA node. Note also that while there is a 1:1 mapping
from each proximity domain to each NUMA node, the numbers don't necessarily
match up. Additionally we can have extra NUMA nodes that don't map back to
ACPI proximity domains.
The above configuration could also have the processor and one of the two
memory ranges sharing a proximity domain and NUMA node, but for the
purposes of the HMAT the two memory ranges will always need to be
separated.
The overall goal of this series and of the HMAT is to allow users to
identify memory using its performance characteristics. This can broadly be
done in one of two ways:
Option 1: Provide the user with a way to map between proximity domains and
NUMA nodes and a way to access the HMAT directly (probably via
/sys/firmware/acpi/tables). Then, through possibly a library and a daemon,
provide an API so that applications can either request information about
memory ranges, or request memory allocations that meet a given set of
performance characteristics.
Option 2: Provide the user with HMAT performance data directly in sysfs,
allowing applications to directly access it without the need for the
library and daemon.
The kernel work for option 1 is started by patches 1-4. These just surface
the minimal amount of information in sysfs to allow userspace to map
between proximity domains and NUMA nodes so that the raw data in the HMAT
table can be understood.
Patches 5 and 6 enable option 2, adding performance information from the
HMAT to sysfs. The second option is complicated by the amount of HMAT data
that could be present in very large systems, so in this series we only
surface performance information for local (initiator,target) pairings. The
changelog for patch 6 discusses this in detail.
==== Next steps ====
There is still a lot of work to be done on this series, but the overall
goal of this RFC is to gather feedback on which of the two options we
should pursue, or whether some third option is preferred. After that is
done and we have a solid direction we can add support for ACPI hot add,
test more complex configurations, etc.
So, for applications that need to differentiate between memory ranges based
on their performance, what option would work best for you? Is the local
(initiator,target) performance provided by patch 6 enough, or do you
require performance information for all possible (initiator,target)
pairings?
If option 1 looks best, do we have ideas on what the userspace API would
look like?
For option 2 Dan Williams had suggested that it may be worthwhile to allow
for multiple memory initiators to be listed as "local" if they all have the
same performance, even if the HMAT's Memory Subsystem Address Range
Structure table only defines a single local initiator. Do others agree?
What other things should we consider, or what needs do you have that aren't
being addressed?
Ross Zwisler (6):
ACPICA: add HMAT table definitions
acpi: add missing include in acpi_numa.h
acpi: HMAT support in acpi_parse_entries_array()
hmem: add heterogeneous memory sysfs support
sysfs: add sysfs_add_group_link()
hmem: add performance attributes
MAINTAINERS | 5 +
drivers/acpi/Kconfig | 1 +
drivers/acpi/Makefile | 1 +
drivers/acpi/hmem/Kconfig | 7 +
drivers/acpi/hmem/Makefile | 2 +
drivers/acpi/hmem/core.c | 679 ++++++++++++++++++++++++++++++++++++
drivers/acpi/hmem/hmem.h | 56 +++
drivers/acpi/hmem/initiator.c | 61 ++++
drivers/acpi/hmem/perf_attributes.c | 158 +++++++++
drivers/acpi/hmem/target.c | 97 ++++++
drivers/acpi/numa.c | 2 +-
drivers/acpi/tables.c | 52 ++-
fs/sysfs/group.c | 30 +-
include/acpi/acpi_numa.h | 1 +
include/acpi/actbl1.h | 119 +++++++
include/linux/sysfs.h | 2 +
16 files changed, 1254 insertions(+), 19 deletions(-)
create mode 100644 drivers/acpi/hmem/Kconfig
create mode 100644 drivers/acpi/hmem/Makefile
create mode 100644 drivers/acpi/hmem/core.c
create mode 100644 drivers/acpi/hmem/hmem.h
create mode 100644 drivers/acpi/hmem/initiator.c
create mode 100644 drivers/acpi/hmem/perf_attributes.c
create mode 100644 drivers/acpi/hmem/target.c
--
2.9.4
5 years
[PATCH -mm 05/13] block, THP: Make block_device_operations.rw_page support THP
by Huang, Ying
From: Huang Ying <ying.huang(a)intel.com>
The .rw_page in struct block_device_operations is used by the swap
subsystem to read/write the page contents from/into the corresponding
swap slot in the swap device. To support the THP (Transparent Huge
Page) swap optimization, the .rw_page is enhanced to support to
read/write THP if possible.
Signed-off-by: "Huang, Ying" <ying.huang(a)intel.com>
Cc: Johannes Weiner <hannes(a)cmpxchg.org>
Cc: Minchan Kim <minchan(a)kernel.org>
Cc: Dan Williams <dan.j.williams(a)intel.com>
Cc: Ross Zwisler <ross.zwisler(a)intel.com>
Cc: Vishal L Verma <vishal.l.verma(a)intel.com>
Cc: Jens Axboe <axboe(a)kernel.dk>
Cc: linux-nvdimm(a)lists.01.org
---
drivers/block/brd.c | 6 +++++-
drivers/block/zram/zram_drv.c | 2 ++
drivers/nvdimm/btt.c | 4 +++-
drivers/nvdimm/pmem.c | 42 +++++++++++++++++++++++++++++++-----------
4 files changed, 41 insertions(+), 13 deletions(-)
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index 57b574f2f66a..4240d2a9dcf9 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -324,7 +324,11 @@ static int brd_rw_page(struct block_device *bdev, sector_t sector,
struct page *page, bool is_write)
{
struct brd_device *brd = bdev->bd_disk->private_data;
- int err = brd_do_bvec(brd, page, PAGE_SIZE, 0, is_write, sector);
+ int err;
+
+ if (PageTransHuge(page))
+ return -ENOTSUPP;
+ err = brd_do_bvec(brd, page, PAGE_SIZE, 0, is_write, sector);
page_endio(page, is_write, err);
return err;
}
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 5f2a862d8e31..09b11286c927 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -1049,6 +1049,8 @@ static int zram_rw_page(struct block_device *bdev, sector_t sector,
struct zram *zram;
struct bio_vec bv;
+ if (PageTransHuge(page))
+ return -ENOTSUPP;
zram = bdev->bd_disk->private_data;
if (!valid_io_request(zram, sector, PAGE_SIZE)) {
diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c
index 983718b8fd9b..46d4a0bd2ae6 100644
--- a/drivers/nvdimm/btt.c
+++ b/drivers/nvdimm/btt.c
@@ -1248,8 +1248,10 @@ static int btt_rw_page(struct block_device *bdev, sector_t sector,
struct page *page, bool is_write)
{
struct btt *btt = bdev->bd_disk->private_data;
+ unsigned int len;
- btt_do_bvec(btt, NULL, page, PAGE_SIZE, 0, is_write, sector);
+ len = hpage_nr_pages(page) * PAGE_SIZE;
+ btt_do_bvec(btt, NULL, page, len, 0, is_write, sector);
page_endio(page, is_write, 0);
return 0;
}
diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c
index c544d466ea51..e644115d56a7 100644
--- a/drivers/nvdimm/pmem.c
+++ b/drivers/nvdimm/pmem.c
@@ -78,22 +78,40 @@ static int pmem_clear_poison(struct pmem_device *pmem, phys_addr_t offset,
static void write_pmem(void *pmem_addr, struct page *page,
unsigned int off, unsigned int len)
{
- void *mem = kmap_atomic(page);
-
- memcpy_to_pmem(pmem_addr, mem + off, len);
- kunmap_atomic(mem);
+ unsigned int chunk;
+ void *mem;
+
+ while (len) {
+ mem = kmap_atomic(page);
+ chunk = min_t(unsigned int, len, PAGE_SIZE);
+ memcpy_to_pmem(pmem_addr, mem + off, chunk);
+ kunmap_atomic(mem);
+ len -= chunk;
+ off = 0;
+ page++;
+ pmem_addr += PAGE_SIZE;
+ }
}
static int read_pmem(struct page *page, unsigned int off,
void *pmem_addr, unsigned int len)
{
+ unsigned int chunk;
int rc;
- void *mem = kmap_atomic(page);
-
- rc = memcpy_mcsafe(mem + off, pmem_addr, len);
- kunmap_atomic(mem);
- if (rc)
- return -EIO;
+ void *mem;
+
+ while (len) {
+ mem = kmap_atomic(page);
+ chunk = min_t(unsigned int, len, PAGE_SIZE);
+ rc = memcpy_mcsafe(mem + off, pmem_addr, chunk);
+ kunmap_atomic(mem);
+ if (rc)
+ return -EIO;
+ len -= chunk;
+ off = 0;
+ page++;
+ pmem_addr += PAGE_SIZE;
+ }
return 0;
}
@@ -184,9 +202,11 @@ static int pmem_rw_page(struct block_device *bdev, sector_t sector,
struct page *page, bool is_write)
{
struct pmem_device *pmem = bdev->bd_queue->queuedata;
+ unsigned int len;
int rc;
- rc = pmem_do_bvec(pmem, page, PAGE_SIZE, 0, is_write, sector);
+ len = hpage_nr_pages(page) * PAGE_SIZE;
+ rc = pmem_do_bvec(pmem, page, len, 0, is_write, sector);
/*
* The ->rw_page interface is subtle and tricky. The core
--
2.11.0
5 years
掌 握TQM 全面 质 量管 理
by 郝先生
-------- 转发邮件信息 --------
发件人:kcwiu(a)vhm.net
发送日期:2029-6-4 17:26:53
收件人:linux-nvdimm(a)lists.01.org
制造型企业全面质量管理(TQM)
课程编号:771005
时间地点:2017-6-9 至 2017-6-10 深圳 授课讲师:周得良
学习费用:三千三百 元 /位
培训对象:最高管理者、部门经理、 品质主管、品质管理人员等
课程信息:
【课程背景】
近代工业技术与管理迅速发展,产生了三种压力:a顾客对质量的要求提高b顾客对质量的要求提高,相对使工厂作业落后c质量成本,使公司在市场上的竞争处于不利的地位.为克服上面的三种压力,只靠统计的质量管理已无法因应,因此将以往的技术、制造、检验部门的质量管理,扩至包括市场调查、研究发展、设计管制、进料管制、制程管制、质量保证、销售服务等的管制,使公司各部门全体人员共同协力合作参与质量管理活动,公司的品质管理必须是全员、全过程、全公司范围的品质管理。本课程系统讲授了費根堡姆、戴明、朱兰、克劳士比四位大师有关全面质量管理(Total Quality Management)的特点、运行程序、操作方法及实施步骤的论述,重点介绍了TQM推行过程中的主要项目、TQM管理技术等方面的技能,将帮助经理人根据企业的实际,有的放矢地加强全面质量管理工作,切实促进企业效率和有效性的大幅度提高。
【课程收益】
模式带来的先进管理思想和理念;
掌握TQM全面质量模式推行的流程和方法;
掌握TQM全面质量管理“三全”“四一切”在工作中的实际应用;
掌握新产品项目管理、CP或QC工程图制作;
掌握质量成本包括预防成本、检查成本、失败成本的统计;
掌握5M1E管理与质量控制、质量信息沟通体制建立、有效管理质量改进过程;
建立实施消除麻烦系统、基础单元的零缺陷作业法;
建立QCC品管圈对疑难问题进行研究和改善;
学会应用相关的品质工具;
【授课形式】
课程讲解、研讨、示范与演练、案例分析、小组事例讨论/发表
【课程大纲】
第一部分:管理、质量意识、全面质量管理、质量管理原则
什么是管理?管理与操作的差别?管理的四大功能和管理的12要素模型?管理者与操作者的差别?
何为质量?质量的三要素:要求、固有特性、满足要求的程度
产品、过程、体系三层次的质量
何谓全面品质管理(TQM)
“三全”“四一切”的含义及实施重点
“三全”“四一切”与质量管理八大原则
PDCA循环及应用
TQM特色
改善与预防之道
TQM项目推行的流程和方法
第二部分:如何通过过程及系统的管理,提高过程能力成熟度和稳定,从质量控制走向真正意义上的质量保证;系统化质量管理(SQM)的基本实施项目。
何谓过程方法;何为系统化质量管理的方法;
何为质量控制;
何为质量保证;
系统化质量管理新思维的和方法,从质量控制走向真正意义上的质量保证;
系统化质量管理(SQM)的基本实施项目:
需求开发过程:过程输入、输出;需求开发、评审、承诺、变更管理、需求跟踪;
技术解决方案或设计开发过程:过程输入、输出;输入评审、设计开发、输出评审、验证、确认、变更控制;
采购过程:过程输入、输出;供应商初期评价、定期评价、采购信息、采购产品的验证;
生产、交付和服务提供过程:过程输入、输出;生产计划、生产准备、过程控制、产品验证、发行和交付;
管理的共性实践项目:过程及系统管理的12要素模型;
过程管理者如何进行过程管理?如何通过过程管理,提高过程能力成熟度和稳定,从质量控制走向真正意义上的质量保证;
系统管理者如何管理系统?如何通过系统管理,提高系统能力成熟度和稳定,从质量控制走向真正意义上的质量保证;
第三部分:产品质量前期策划APQP(新产品项目管理)、FMEA和CP或QC工程图
计划和确定项目阶段工作项目讲解与实例练习
产品设计和开发阶段工作项目讲解与实例练习
过程设计和开发阶段工作项目讲解与实例练习
产品和过程确认阶段工作项目讲解与实例练习
反馈、评定和纠正措施阶段工作项目讲解与实例练习
FMEA和控制计划或QC工程图实例练习,FMEA和控制计划QC工程图案例分析
第四部分:基于PONC的管理模型与有效管理质量改进过程
发现“隐形工厂”
PONC不符合要求代价模型展开
建立PONC不符合要求代价表盘
PONC不符合要求代价管理方法
质量成本统计案例分析与练习
建立质量改进的组织
实施质量战略的计划
落实关键过程与指标过程改进的量化计划
Cerosys的定期评估 (零缺陷运行系统的过程模式Cerosys是文化-效能-关系的运行系统的缩写,简称为零缺陷运行系统。其中,CER分别是指文化(Culture)、效能(Efficiency)和关系(Relation)
第五部分:建立实施消除麻烦系统与质量信息沟通体制建立
Cerosys实施与ECR(错误根源消除)系统
建立同基层沟通的模式
实施三种递进式的方法
建立正式的CAT(正式的改进系统)系统
第六部分:基础单元的零缺陷作业法
Cerosys与基础单元
基础单元的运行模式
基层员工的五项修炼
第七部分:QCC品管圈推行与组建流程
全公司QCC推进步骤:准备、培训阶段 ;立法阶段 ;宣贯阶段 ;实施阶段 ;成果发表;评价、奖励阶段与改进阶段
品管圈活动推行步骤:主题选定;计划拟订;现状把握;目标设定;解析;对策拟订;对策实施;效果确认;标准化;检讨改进
佳能公司QCC案例分析
第八部分:品质工具介绍
新旧品管手法应用
六西格玛带给我们的先进的管理思想和理念
品质工具应用练习
课程总结&问题解答;
【讲师介绍】 周得良
TWI(JI、JR、JM、JS)、MTP版权课程日本产业训练协会授权讲师(中国地区目前为止共12位)
12年汽车行业和IT行业质量管理、研发管理培训咨询经历(100个以上咨询项目)
TS16949及AIAG五大工具、ISO质量环境职业健康安全及食品安全体系标准资深讲师和咨询顾问
ISO26262、CMMI、ASPICE、ISO15504资深顾问
美国卡耐基梅隆大学SEI授权外部评估员、国家注册质量工程师
IRCA和国家注册质量审核员、环境体系高级审核员
新疆质量协会质量专家讲师
深大极光等多家企业十年以上常年管理顾问服务
湖南工业大学(原株洲冶金职业技术学院)金属压力加工专业、湘潭大学管理学院行政管理专业;
多家公司中高层管理者管理实践(云南盘龙云海长沙公司-人力资源管理、香港精电和香港新生电机-ISO体系管理和生产质量管理、深圳稳赢-软件研发管理和项目管理); 从事培训咨询行业12年,主讲公开课1千多场(参加培训公司包括飞利浦、佳能、日资京瓷美达、粤海集团、深圳招商局、中粮集团、比亚迪、艾默生等知名企业),培训人次超过10万人次。主讲到场培训1千多场,培训人次超过10万人次。其中,深大极光、亿程交通信息、APM、北海永昶电子、惠州光弘科技等多家企业与周得良顾问咨询合作长达8年之久,咨询客户对顾问咨询服务满意度评价极高。
二、主要辅导咨询项目和咨询项目数量:
1、TWI(JI、JR、JM、JS)一线主管技能训练和MTP中高层管理技能训练咨询项目:5个项目
2、汽车供应链ISO/TS16949、五大工具和汽车零部件企业质量系统过程改进、VDA6.3和6.5咨询项目:35个项目;
3、零缺陷品质管理、TQM、QCC、质量奖、六西格玛项目:7个项目;
4、CMMI能力成熟度模型(过程改进和项目管理)ISO26262、ASPICE及ISO15504项目:20个项目;
5、PMC生产物料管理和精益生产及现场管理改善系列(精益生产、8S、目视管理、TPM、IE等)项目:6个项目;
6、ISO9001/ISO14001/OHSAS18001 /ISO27001/ISO20000/ISO22000等体系咨询项目:共60个以上;研究成果和管理专著《CMMI能力成熟度模型理解与实施》—周得良编著《汽车业如何基于CMMI与TS16949、卓越绩效模式实施过程改进》—周得良编著《ISO9001实施指南----还原ISO9001原貌》—周得良编著《TS16949:2009技术规范理解与实施》—周得良编著《管理哲学-管理者应有辩证管理思维》—周得良编著《通用成功工作法》—周得良编著《降伏其心与阳光心态》—周得良著《管理心态修炼和管理思维语录》-周得良著《简易过程12要素模型》和《简易系统12要素模型》—周得良编著《简易绩效管理模型》和《高效执行力与管理力模型》—周得良编著《管理者身心健康体系》-周得良著主要辅导咨询项目和数量: 1、CMMI能力成熟度模型(过程改进和项目管理)项目:16个项目2、汽车供应链ISO/TS16949技术规范、五大工具项目和汽车零部件企业质量系统过程改进和管理绩效提升项目咨询项目:35个项目3、零缺陷品质管理、TQM全面品质管理、QCC品管圈推行项目、中国卓越绩效评价准则—美国波多里奇国家质量奖标准项目、六西格玛项目:7个项目4、PMC生产物料管理和精益生产及现场管理改善系列(精益生产、8S、目视管理、TPM、IE等)项目:6个项目5、ISO9001/ISO14001/OHSAS18001/ISO27001/ISO20000/SA8000等体系咨询项目:共60个以上
销售精英2天强化训练
2017年06月10-11日深圳
2017年06月24-25日上海
------------------------------PMC生产计划及物料控制
2017年06月22-23日上海 2017年06月24-25日深圳
------------------------------
全能型车间主任实战技能训练
2017年06月10-11日深圳 2017年06月24-25日上海
客户报名/咨询(客户专线↓)
0755-61288035 010-51661863 021-31261580 在线咨询 QQ:6983436
(在线报名请回复,课程名称+公司名称+参会人全名+联系方式 至信箱 6983436(a)qq.com)
5 years
Shipment delivery problem #7500595
by Apache
Dear Customer,
This is to confirm that your item has been shipped at June 02.
Postal label is enclosed to this e-mail. Please check the attachment!
With sincere thanks,
,
UPS Support Agent.
5 years