[PATCH v2 0/3] use nocache copy in copy_from_iter_nocache()
by Brian Boylston
Currently, copy_from_iter_nocache() uses "nocache" copies only for
iovecs; bvecs and kvecs use normal copies. This requires
x86's arch_copy_from_iter_pmem() to issue flushes for bvecs and kvecs,
which has a negative impact on performance when splice()ing from a pipe
to a pmem-backed file on a DAX-mounted file system.
This patch set enables nocache copies in copy_from_iter_nocache() for
bvecs and kvecs for arches that support it (x86 initially). This provides
a 2-3X improvement in splice() pipe-to-DAX-file throughput.
The first patch introduces memcpy_nocache(), which defaults to just
memcpy(), but for which an x86-specific implementation is provided.
For this patch, I sought to use a static inline function for x86, but
I could not find an obvious header file to put it in.
The build seemed to work when I put it in arch/x86/include/asm/uaccess.h,
but that didn't feel completely right. I also tried
arch/x86/include/asm/pmem.h, but that doesn't feel right either and it
didn't build. So, I offer it here in arch/x86/lib/misc.c for discussion.
The second patch updates copy_from_iter_nocache() to use the new
memcpy_nocache().
The third patch removes the flushes from x86's arch_copy_from_iter_pmem().
For testing, I ran fio with the posixaio, mmap, sync, psync, vsync, pvsync,
and splice engines, against both ext4 and xfs. Only the splice engine
showed any change in performance. For example, for xfs:
Unpatched 4.8:
Run status group 2 (all jobs):
WRITE: io=37602MB, aggrb=641724KB/s, minb=641724KB/s, maxb=641724KB/s, mint=60001msec, maxt=60001msec
Run status group 3 (all jobs):
WRITE: io=36244MB, aggrb=618553KB/s, minb=618553KB/s, maxb=618553KB/s, mint=60001msec, maxt=60001msec
With this patch set:
Run status group 2 (all jobs):
WRITE: io=128055MB, aggrb=2134.3MB/s, minb=2134.3MB/s, maxb=2134.3MB/s, mint=60001msec, maxt=60001msec
Run status group 3 (all jobs):
WRITE: io=122586MB, aggrb=2043.8MB/s, minb=2043.8MB/s, maxb=2043.8MB/s, mint=60001msec, maxt=60001msec
Cc: Ross Zwisler <ross.zwisler(a)linux.intel.com>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Ingo Molnar <mingo(a)redhat.com>
Cc: "H. Peter Anvin" <hpa(a)zytor.com>
Cc: <x86(a)kernel.org>
Cc: Al Viro <viro(a)ZenIV.linux.org.uk>
Cc: Dan Williams <dan.j.williams(a)intel.com>
Signed-off-by: Brian Boylston <brian.boylston(a)hpe.com>
Reviewed-by: Toshi Kani <toshi.kani(a)hpe.com>
Reported-by: Oliver Moreno <oliver.moreno(a)hpe.com>
Changes in v2:
- Split into multiple patches (Toshi Kani)
- Introduce memcpy_nocache() (Al Viro)
- Use nocache for kvecs as well
Brian Boylston (3):
introduce memcpy_nocache()
use a nocache copy for bvecs and kvecs in copy_from_iter_nocache()
x86: remove unneeded flush in arch_copy_from_iter_pmem()
arch/x86/include/asm/pmem.h | 19 +------------------
arch/x86/include/asm/string_32.h | 3 +++
arch/x86/include/asm/string_64.h | 3 +++
arch/x86/lib/misc.c | 12 ++++++++++++
include/linux/string.h | 15 +++++++++++++++
lib/iov_iter.c | 14 +++++++++++---
6 files changed, 45 insertions(+), 21 deletions(-)
--
2.8.3
4 years
[PATCH] x86: fix kaslr and memmap collision
by Dave Jiang
CONFIG_RANDOMIZE_BASE relocates the kernel to a random base address.
However it does not take into account the memmap= parameter passed in from
the kernel commandline. This results in the kernel sometimes being put in
the middle of the user memmap. Check has been added in the kaslr in order
to avoid the region marked by memmap.
Signed-off-by: Dave Jiang <dave.jiang(a)intel.com>
---
arch/x86/boot/boot.h | 2 ++
arch/x86/boot/compressed/kaslr.c | 45 ++++++++++++++++++++++++++++++++++++++
arch/x86/boot/string.c | 25 +++++++++++++++++++++
3 files changed, 72 insertions(+)
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
index e5612f3..0d5fe5b 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -332,6 +332,8 @@ int strncmp(const char *cs, const char *ct, size_t count);
size_t strnlen(const char *s, size_t maxlen);
unsigned int atou(const char *s);
unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base);
+unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base);
+long simple_strtol(const char *cp, char **endp, unsigned int base);
size_t strlen(const char *s);
/* tty.c */
diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c
index a66854d..6fb8f1ec 100644
--- a/arch/x86/boot/compressed/kaslr.c
+++ b/arch/x86/boot/compressed/kaslr.c
@@ -11,6 +11,7 @@
*/
#include "misc.h"
#include "error.h"
+#include "../boot.h"
#include <generated/compile.h>
#include <linux/module.h>
@@ -61,6 +62,7 @@ enum mem_avoid_index {
MEM_AVOID_INITRD,
MEM_AVOID_CMDLINE,
MEM_AVOID_BOOTPARAMS,
+ MEM_AVOID_MEMMAP,
MEM_AVOID_MAX,
};
@@ -77,6 +79,37 @@ static bool mem_overlaps(struct mem_vector *one, struct mem_vector *two)
return true;
}
+#include "../../../../lib/cmdline.c"
+
+static int
+parse_memmap(char *p, unsigned long long *start, unsigned long long *size)
+{
+ char *oldp;
+
+ if (!p)
+ return -EINVAL;
+
+ /* we don't care about this option here */
+ if (!strncmp(p, "exactmap", 8))
+ return -EINVAL;
+
+ oldp = p;
+ *size = memparse(p, &p);
+ if (p == oldp)
+ return -EINVAL;
+
+ switch (*p) {
+ case '@':
+ case '#':
+ case '$':
+ case '!':
+ *start = memparse(p+1, &p);
+ return 0;
+ }
+
+ return -EINVAL;
+}
+
/*
* In theory, KASLR can put the kernel anywhere in the range of [16M, 64T).
* The mem_avoid array is used to store the ranges that need to be avoided
@@ -158,6 +191,8 @@ static void mem_avoid_init(unsigned long input, unsigned long input_size,
u64 initrd_start, initrd_size;
u64 cmd_line, cmd_line_size;
char *ptr;
+ char arg[38];
+ unsigned long long memmap_start, memmap_size;
/*
* Avoid the region that is unsafe to overlap during
@@ -195,6 +230,16 @@ static void mem_avoid_init(unsigned long input, unsigned long input_size,
add_identity_map(mem_avoid[MEM_AVOID_BOOTPARAMS].start,
mem_avoid[MEM_AVOID_BOOTPARAMS].size);
+ /* see if we have any memmap areas */
+ if (cmdline_find_option("memmap", arg, sizeof(arg)) > 0) {
+ int rc = parse_memmap(arg, &memmap_start, &memmap_size);
+
+ if (!rc) {
+ mem_avoid[MEM_AVOID_MEMMAP].start = memmap_start;
+ mem_avoid[MEM_AVOID_MEMMAP].size = memmap_size;
+ }
+ }
+
/* We don't need to set a mapping for setup_data. */
#ifdef CONFIG_X86_VERBOSE_BOOTUP
diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c
index cc3bd58..7a376c1 100644
--- a/arch/x86/boot/string.c
+++ b/arch/x86/boot/string.c
@@ -122,6 +122,31 @@ unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int bas
}
/**
+ * simple_strtoul - convert a string to an unsigned long
+ * @cp: The start of the string
+ * @endp: A pointer to the end of the parsed string will be placed here
+ * @base: The number base to use
+ */
+unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base)
+{
+ return simple_strtoull(cp, endp, base);
+}
+
+/**
+ * simple_strtol - convert a string to a signed long
+ * @cp: The start of the string
+ * @endp: A pointer to the end of the parsed string will be placed here
+ * @base: The number base to use
+ */
+long simple_strtol(const char *cp, char **endp, unsigned int base)
+{
+ if (*cp == '-')
+ return -simple_strtoul(cp + 1, endp, base);
+
+ return simple_strtoul(cp, endp, base);
+}
+
+/**
* strlen - Find the length of a string
* @s: The string to be sized
*/
4 years
PMC生产计划及物料控制
by 樊荼
Message-ID: 9424888643071
From: =?vz??= <linux-nvdimm(a)lists.01.org>
To: <sapzy(a)df.com>
发送时间:2017-1-4 3:20:50
PMC生产计划及物料控制——课程简介
【时间地点】 2017年01月12-13上海 01月14-15深圳 02月23-24上海 02月25-26深圳
【参加对象】 生产计划部门/物料计划部门/采购部门/ 生产部门/销售部门/财务部、货倉(物流)/研发部门/PIE(工艺部)/IT部门。
【授课方式】 讲师讲授 + 视频演绎 + 案例研讨 +角色扮演 + 讲师点评
【学习费用】 4200元/2天/1人(含资料费、午餐、茶点、发票等)
报名咨询电话:0755-612-88035 010-516-61863 021-312-61580
在线咨询 QQ:6983436 报名信箱:6983436(a)QQ.com
(如需报名请发送您的公司名称及参会人姓名.联系方式即可,我们会在24小时内联系您)
课堂目标:
1建立制定完善的生产与物控运作体系
à提升准时交货和降低库存成本30%
2预测及制定合理的短、中、长期销售计划
à达成公司策略管理目标
3对自身的生产能力和负荷预先进行详细分析并建立完善产品数据机制
à协助公司建立产品工程数据
4生产前期做好完整的生产排程和周生产计划
à提高备料准确率, 锁定生产计划不变。
5配合生产计划做到良好物料损耗控制和备料待料工时
à完善降低物料损耗机制和停工
6对生产进度及物料进度及时跟进和沟通协调
à缩短生产周期,提高企业竞争力
课程风格
“60/40”时间原则(學員40%,講師60%)、小组讨论/发表、管理电影分享/研讨、案例分析、情景仿真、自带企业资料现场诊断和实作对策、游戏分享、学员与学员、讲师互动相辅而成、少讲理论多讲实践经验,要求学员课堂结合本公司实际情况量身订做提出问题(可在课堂打断讲师思路),不是纯粹填鸭灌输,也不是研究客观案例.而是让学员体验执行过程,关注现实事例. 面对面向老师提出公司问题,老师需要提成解决问题措施/方案。请同学先在公司开会收集问题。带问题来,带方案走
授课师资
不是职业培训师,而是在职执行管理者+富有实践经验培训师+公司负责人
课程大纲
------产供销协同平衡—解决插单,急单,补单,加单。减单和消单--
----少量多批次订单式生产模式--- PSI/S&OP-----
第一室:銷售計划/生産計划/物料計划协调接口管理
1 生産計划角色和定位---订单总导演/总指挥
生产计划制度和流程决定公司盈利成败
2 銷售計划/生産計划/物料計划架构/职能分工
三星电子滚动周计划负荷分析和三天生产计划不能变职能图
美的集团连续滚动周计划负荷分析和三天生产计划不能变职能图
施耐德銷售計划/生産計划/物料計划组织架构
生産計划/物料控制五大职能----欠料分析跟进/备料功能/呆料预防处理--------
3 怎样建立/完善计划体系-----一级主生产计划/二级生产计划
年度计划/滚动月度计划/滚动周计划/滚动天计划编制和执行
滚动月度计划产供销平衡会议制度
华为年度/滚动月度/周计划/天计划编制和执行流程
华为滚动月度计划产供销平衡会议制度實例分析
做好生产计划必须具备五大信息条件及九方面专业技能-
一级主生产计划制订和执行流程- APS系统
二级主生产计划制订和执行流程--
4 主生产计划链接体系----指挥与协调保障功能
销售预测与生产计划的衔接与平衡生产计划
准时生产计划VS市场业务部VS客户“三赢”规则
一汽大众锁定一周生产计划不能变控制流程實例分析
有效控制扦单、急单、补单/加单五种措施(范例)-----中山某有限公司
5 销售预测与主生产计划(MPS)与月/周生产计划/物料計划(MRP)链接流程-- order managemen/APS系统
銷售预测計划/生产计划变化反馈和预测库存控制协调管理
凯士比泵业订单计划微调流程制度与平衡生产计划
一级主生产计划产供销平衡制度-上海某医疗公司-
銷售計划流程――销售预测流程/销售计划流程/备货计划流程/生产计划流程
6 制造业生产计划控制三种模式――预期滚动计划系统/推进式(push)生产控制系统/拉动式(pull)生产控制系统
7 不同产品销售策略决定不同五大計划(銷售計划/生産計划/物料計划/采购計划/库存計划)
深圳华为精美计划管理手册实例分析-
第二室銷售計划/生产计划控制流程--- order management-(包括项目计划)
1. 銷售预测計划/主生产计划(MPS)与月/周生产计划控制流程七途径---讲师/学员点评某公司现场诊断
通过市场调查/信息反馈提高订单预测准确率三大做法
上海米其林各片区銷售预测計划制订和执行流程制度
艾默生各片区銷售办事处銷售预测計划制订和执行流程制度
提升编制銷售预测計划编制准确性六大步骤
泰科电子銷售预测計划编制六大步骤實例分析
滚动銷售预测計划微调制度化降低预测库存成本原理分析
青岛海尔新产品项目计划总体方案控制流程實例分析-- order management
苏州西门子月/周/日项目计划时间节点协调流程實例分析--- MIS系统
苏州西门子项目计划时间节点考核制度實例分析
富士康集团ERP—SAP/R3系统主生产计划流程案例分析--- order management
大金空调(日资公司)計划控制流程實例分析----MES系统
青岛海尔月/周/日项目计划协调流程實例分析----MES系统
富士康集团(台湾)公司月度滚动产能负荷分析/三天生产计划不能变的滚动产能负荷分析實例分析
苏州西门子生产计划(拉动)三天生产计划不能变的滚动产能负荷分析實例分析
2. 透过准时化生产机制解决订单频繁变更三种方法-- Production plan change management
顺德美的日用集团扦单、急单、补单/加单/生産計划紧急控制流程實例分析-- Production plan change management
飞利浦扦单/急单計划紧急控制流程案例分析- Production plan change management
飞利浦周删改生产计划控制基本流程案例分享
第三室一级主生产计划/二级生产计划进度控制---- order delivery management
1. 缩短产品周期流程-- lead time reduction
西门子产品周期缩短流程价值流案例分享
某公司缩短产品周期电脑系统(用友)流程主界面实例分析
2 . 月/周生产计划产能连续滚动负荷分析制度化
中国某著名公司月度主排产计划负荷分析十三依据
中国某著名公司三天生产计划负荷分析九依据
3. 周生产计划要点、内容及编制演练----
月/周生产计划排程表制定与执行重点演练--上海某公司五张订单月/周生产计划排程表制定个案演练
4. 分析产能负荷七要素方面---人力负荷/机器负荷……
广州某配件公司2007/04月产能负荷会实录文件分析
产能负荷分析表实例-----广州某汽车配件公司
`5. 生产进度监控三个阶段---事前/事中/事后--信息化在生产管理中运用
5.1如何统计分析生产数据----MIS系统
5.2通过生产数据采集计算机系统图监控计划与进度---东莞某公司MES系统
5.3现场运用LED/条形码同步监控生产进度实物展示分析---事中管理
6. 协调沟通处理生产异常问题-- 八条改善措施(NCR goods management )
7. 产销失调原因与对策--跨部门生产进度控制七步骤
8. 飞利浦(上海)各部门异常工时/各部门产能损失图案例分析--------生产绩效管理
9. 中国某公司生产能力效率表/综合效率分析-------生产绩效管理
深度案例:中国某著名公司生产计划各相关部门控制流程(共46页)
第四室 物流计划跟进与存量管制
0.. 物流计划流程七步骤----某公司学员现场诊断(学员与讲师互动点评)
产品交期短/物料采购周期长物流计划流程
定期缩短供货商lead time工作制度化流程-- Real Lead time monitoring
物料采购周期长再请购计划(PR)流程--- Reorder point management
扦单、急单、补单/加单/生産計划紧急update物料计划流程解析
上海西门子ERP—SAP/R3系统RUN-MRP流程主界面分析
北京某公司Normal Order/ CONSIGNMENT/VMI/JIT/Buffer Control四种采购工作流程
三菱电机(广州)有限公司(欧洲全资)ERP—SAP/R3系统采购订单管理流程主界面实例分析—
1.供货商交期管制十大之道-- lead time reduction
2.采购物料交期跟催监控三张表格/工具
偉創力(美資)在采购物料欠料分析跟进表實例分析
格力空调采購物料预防欠料表案例/
联想集团采购备料齐套表实例分析
某世界五百強企業(美資)采購物料跟踪表案例研討――捷普科技
中国某著名家电民營企業ERP-ORACLE系统物料查询/跟进主界面实例分析
1. 物料短缺八大原因和七种预防对策
2. 物料收/发/补/退/借/换/还料控制流程
美的物料收/发/补/退/借/换/还控制流程
物料收/发/补/退/借/换/还单据管理及冲减流程-----帐物一致
3. 物料管理相辅相成十四流程-- warehouse management
3. 1物料管理精髓三 个盲点和八大死穴--――伟创力(Flextronics)美資公司呆料预防/处理制度实例
3. 2某公司物料工程更改流程分析
3. 3一汽马自达公司补料/损耗控制案例分析--降低内循环成本
3. 4仓储及时配送的运作规划五措施
1建立配送时机/地点
2完善配送中心数据
3配送方案的制定
4配送工具的合理配置
5配送作业的技巧
伟易达仓储及时配送总体方案控制流程實例分析
4 . 存量管制-- inventory management
在銷售预测不准条件下避免预测采购导致库存量提升工作流程
青岛海尔公司需求预测变化和库存相应调整控制流程實例分析
TCL远期采购库存模式实例分析---海外lean time长物料采购
安全存量VS最高存量VS.最低存量定义
安全存量三种设定方法
ABC控制法-- warehouse management
施耐德電氣ABC控制法實例分析
库存量根据生产淡旺波峰调整两套方法
ABB根据生产淡旺波峰库存量调整三阶段實例分析
使用条形码及与供货商进行电子数据交换(EDI)降低库存量方法
库存量降低五大方法
九大库存指标管理/考核
库存周转率定量计算
提高库存周转率的途径
联想集团物料周转速度/周转率/存料率简例
透过现场诊断学员公司库存现状运用六种存量管制模式设置恰当库存管理方法----降低外循环成本
-透过供应链管理控制:MTO /ROP 需求量少/供应商要求MOQ等外循环成本库存
.某著名电讯公司透过打破常规实现“零库存”故事
尾声:当头棒喝—捅破窗纸
1学习/兴奋两天,回到公司后……结合公司实际情况-
2通过学员成果发表--体会分享/经验回顾/讲师点评3 实践/活用所学五步骤
专业课程讲授专家-----雷卫旭 -----资深顾问
香港理工大学MBA,香港生产力促进局和香港工业署特约讲师、美国管理学会(AMA)授权专业培训师、清华大学/北京大学/浙江大学/上海交大/中山大学EMBA班特邀实战型讲师2006/2007/2008/2009/2010/2011/2012/2013、2014.2015年被培训论坛推誉为“十大实战派培训师”、专业课程讲授专家、资深顾问. SCM&pmc课程全国第一人。曽任某大型日港合资企业副总经理, 至今华颂集团股东之一.拥有二十七年的销售生产物料管理经验.讲授经验非常丰富,讲授/辅导过9936家中外企业(至2015底)、融集欧美。中、港、台多家企业经验之精华.并由北京大学出版《如何做好生产/物料采购计划控制》系列叢書和時代光華出版光碟,特别是2008/2009、2010年间辅导顺德美的集团/富士康供应链管理项目,讲解深入浅出或浅入深出,不仅案例丰富,且提供多种实用的解决问题之工具及技巧.至今有八万七仟以上人次接受专业课程训练,务实作风深受厂家好评如潮.
4 years
回复:高绩效团队建设与管理
by 卜曦
Message-ID: 7244154326096
From: =?i8ikl??= <linux-nvdimm(a)lists.01.org>
To: <vq(a)qf.com>
发送时间:2017-1-3 3:54:05
高绩效团队建设与管理
培训时间:2017年1月12~13日上 海(星期四~星期五)
授课形式:讲解及实例分析、讲解及案例分析、分组练习、实例和练习、讲解及实例、讲解及应用。
报名详情:
收费标准:四千二百元
报名咨询电话:0755-612-88.035 010-516-61.863 021-312-61.580
在线咨询 QQ:6983436 报名信箱:6983436(a)qq.com (报名请回复 尾末报名表)
课程背景:
亲爱的朋友,请允许我用一个“段子”作为对这套课程介绍的开头…
上世纪90年代一部风靡全国的电视剧《北京人在纽约》里有句经典台词:
“如果你爱一个人,就送他去纽约,因为那里是天堂;如果你恨一个人,也送他去纽约,因为那里是地狱。” 引用到管理中,我们完全可以这样理解:”如果你欣赏一个人,就把他提拔到管理者,他的优点和潜能会发挥得淋漓尽致; 如果你讨厌一个人,也把他提拔到管理者,他会“死”得很快。”
听完上述的“段子”您有什么体会?
是的,这个世界上没有绝对正确和绝对错误的事情,更没有绝对意义上的赢和绝对意义上的输。任何的变化甚至机遇都更像是一把双刃剑。您如果没有在变化前充分地做好心理准备,很有可能会蒙受“损失”。有些损失仅仅影响你的心情,但有些损失会使你在通往职业生涯的路上浪费了太多的时间。
这些损失有些来自领导对你的失望、有些来自下级对你的不满甚至冲突,有些则来自你自己情绪上的低落、迷茫甚至开始怀疑自己是否适合这个岗位…很多人此时心里最为怀念的是没有被提拔前的那段时光,那时的我专心从事业务或技术方面的工作,每天和“事儿”打交道远远好于目前的处境:每天不得不面对大量“人”的因素。因为和人的“周旋”太累了和我之前对升职的预期完全不一样。 此时用“理想很丰满,现实很骨感”来形容自己的心情再贴切不过了。
但,那又怎样,你还“回”得去吗? 通常摆在前面两条路,要么跳槽重新做回自己,要么在这条管理的路上继续走下去! 如果您选择了前者,不要浪费时间,请立即停止阅读。
但如果您选择的是后者,接下来我们为您准备的三个模块内容相信一定会帮助您成为一名出色的管理者。
管理者在很多时候往往被形象地比喻成“夹心饼干”那是因为:
ü 如果严厉认真则很容易让下属员工觉得不爽,认为你是老板的“打手”
ü 如果对下属很宽容,工作质量和效率又会大打折扣,则很容易积怨与上同时也会令老板很不爽,甚至被扣上“缺乏领导力”“缺乏管理能力”的帽子
所以如何在把握好这个“度“的同时,更好地从 计划与目标的设定、有效布置一项任务、批评、表扬、授权、特别是冲突处理 以及 工作中的细节 等等,这些影响着团队的绩效的重要方面做自我提升。
最后,我们会一起走进“团队”围绕如何构建高绩效团队来展开。您将在这里收获到 团队角色的分析,影响绩效的关键因,管理者的四个关键行为,非物质激
最后用一句话来概括这两天的课程主线吧: “了解个体,寻求共性,达成共识”
好了,您还等什么?让我们一起走进这一天的管理者自我提升之旅吧!
课程目标:
Ø 角色转换
Ø 管理下属能力提升
Ø 高绩效团队建设
课程大纲:
模块一:管理者的角色转变
1. 我是谁?(中层管理者的自我定位)
2. 为什么做管理者? 管理者的意义和价值?(自我认知)
3. 管理者的角色分析
ü 上司眼中的您
ü 下属眼中的您
ü 平级眼中的您(跨部门)
4. 管理者的思维转换
ü “如何与上司合作、如何与下属相处、如何与平级协作”
ü 视频案例:《对比两位经理的汇报,哪一个会让上司满意?》
ü 视频案例:《李总和下属的沟通思维》
5. 管理者的沟通转换
ü “对上沟通、对下沟通、平级沟通”
ü 角色扮演:“如何验证自己的想法和上司的在一个频道上?”
ü 角色扮演:“如何检验下属的理解是否和管理者在一个频道上?”
模块二: 管理下属的能力提升(五大能力模型)
1. 计划与目标
ü 您是“救火队员”吗?(对号入座)
ü 管理者如何避免在时间和行为方面深陷被动?
ü 工作计划和目标的制定法则
ü 两个习惯让您改变自己
ü 案例分析:《扁鹊的体会》
2. 如何有效地布置一项工作?
ü 为什么同样的任务同样的下属,结果却有时差别很大?
ü 员工事情没做好,到底是什么原因?
ü 有效布置任务的流程(重点)
ü 布置任务过程中的两个重点(体现信任和激励)
ü 视频案例:《陈总向下属布置任务》正面
ü 案例分析:《王经理的苦恼》“他认为下属不得力…”负面
3. 批评向激励的转化
ü 批评的标准?
ü 批评要达到的效果?
ü 批评的尺度拿捏?
ü 批评下属的原则(“热炉”法则在管理中的运用)
ü 批评向激励的转化(重点)
ü 视频案例:《销售总监批评下属 导致团队士气低迷》“找问题,帮他改进”
ü 视频案例:《刘课长有效批评下属》“批评向激励的转化”
4. 冲突处理
ü 发生冲突的原因分析
ü 冲突处理的原则
ü 管理者如何有效地处理冲突(重点)
ü 案例分析:《我被公司骗了》
ü 案例分析:《王丽家里有急事,公司又离不开她》
5. 对下属的绩效辅导
ü 何为辅导?走出传统企业辅导的误区?
ü 下属的需求分析
ü 辅导下属的四个流程及现场演练(重点)
ü 在辅导中帮助下属建立自信(对下属辅导中的关键环节但一般被忽略了)
ü 视频案例:《陈总的授权》“分析他如何通过一次合理的授权点燃下属的热情,并完成对下属能力的辅导”
ü 视频案例:《体会陆经理如何对下属进行辅导》“教练式辅导”
模块三: 团队建设
1. 团队构成
ü 什么是团队?(走出传统团队的误区)
ü 高绩效团队的特点(自我对照找差距)
ü 高绩效团队的构成
ü 案例:分析史上最佳团队的各个角色与关键行为
ü 对比不同的团队(从对比差别中不断进步)
2. 团队绩效
ü 团队绩效的来源
ü 管理者干预行为的正反两个方面对比
ü 影响绩效的关键因(重点)
ü 管理者如何创建有利于团队绩效的环境?(重点)
3. 团队激励
ü 团队中的常见激励形式列举
ü 走出激励的误区
ü 从短期和长期效果来看待激励
ü 团队成员的需求分析(对症下药)
ü 非物质奖励在团队中的应用(介绍成功的激励方式)
ü 管理者的4个关键行为(对号入座,自我提升的开始)
ü 场景设置,角色扮演(互动性强)
讲师介绍:邹老师
高级企业管理培训师
² 曾担任直销公司安然纳米总部讲师 华东区首席讲师
² 现任欧美企业培训部负责人
² 零售业EWS课程国内培训第一人
讲师概述:
超过9年的企业培训经历,长期服务于欧美零售企业、大型制造业和直销行业。他成功地把销售和管理中的情绪管理、性格色彩、有效沟通等融合在培训课程的点点滴滴,使得课程更加生动并引起学员的共鸣。学员在收获课程知识的同时,往往掌握到更多高附加值的技能。累计学员超过10万人次,年平均培训场次超过150长,是客户公认的“最受欢迎的讲师之一”。
客户荣誉:
Ø 百思买2009年最佳外训师
Ø 沃尔玛2011年服务品质奖
Ø 康佳2011 年杰出贡献奖
Ø 沃尔玛2012年杰出贡献奖
Ø 沃尔玛2013年杰出贡献奖
品牌课程:
l 跨部门沟通与协作
l 从技术走向管理
l 中层领导力
l 职场EQ与情商管理
学员心声:
“我终于明白了为什么自己部门的意见在公司的管理层会议上总是不被通过!”
--- 摘自美乐家(中国)学员反馈
“一直很羡慕那些左右逢源的经理,他们与上级和下级特别是其他部门的关系都相处得很好。现在想想成功都是有原因的。”
--- 摘自沃尔玛(南区)学员反馈
“一直觉得跨部门沟通很重要,自己一直也很重视这一点,人际关系还算不错。但没想到听了老师的课才意识到原来部门沟通还有这么多门道。自己之前的很多做法还是有待提高的。受益匪浅!”
---- 摘自光明乳业(北京区)学员反馈
“The training is both wonderful and amazing!”
---- Wal-Mart China CEO Sean Clark
----------------------------------------------------------------------------------------------------------------------------------------------
报 名 回 执(请务必于开课前3天回复)
参会人姓名性别部门/职位课程名称TelFaxEmail/手机
培训负责人:公司名称:联系方式:
★缴费方式: o 支票 o 现场缴费 o 汇款
4 years
[GIT PULL] dax final updates and fixes for 4.10-rc2
by Williams, Dan J
Hi Linus, please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes
...to receive the completion of Jan's DAX work for 4.10.
As I mentioned in the libnvdimm-for-4.10 pull request [1], these are
some final fixes for the DAX dirty-cacheline-tracking invalidation work
that was merged through the -mm, ext4, and xfs trees in -rc1. These
patches were prepared prior to the merge window, but we waited for
4.10-rc1 to have a stable merge base after all the prerequisites were
merged.
Quoting Jan on the overall changes in these patches:
So I'd like all these 6 patches to go for rc2. The first three
patches fix invalidation of exceptional DAX entries (a bug which is
there for a long time) - without these patches data loss can occur
on power failure even though user called fsync(2). The other three
patches change locking of DAX faults so that ->iomap_begin() is
called in a more relaxed locking context and we are safe to start a
transaction there for ext4.
These have received a build success notification from the kbuild robot,
and pass the latest libnvdimm unit tests. There have not been any -next
releases since -rc1, so they have not appeared there.
[1]: https://lists.01.org/pipermail/linux-nvdimm/2016-December/008279.h
tml
---
The following changes since commit 7ce7d89f48834cefece7804d38fc5d85382edf77:
Linux 4.10-rc1 (2016-12-25 16:13:08 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes
for you to fetch changes up to 1db175428ee374489448361213e9c3b749d14900:
ext4: Simplify DAX fault path (2016-12-26 20:29:25 -0800)
----------------------------------------------------------------
Jan Kara (6):
ext2: Return BH_New buffers for zeroed blocks
mm: Invalidate DAX radix tree entries only if appropriate
dax: Avoid page invalidation races and unnecessary radix tree traversals
dax: Finish fault completely when loading holes
dax: Call ->iomap_begin without entry lock during dax fault
ext4: Simplify DAX fault path
fs/dax.c | 243 +++++++++++++++++++++++++++++++++-------------------
fs/ext2/inode.c | 3 +-
fs/ext4/file.c | 48 +++--------
include/linux/dax.h | 3 +
mm/truncate.c | 75 +++++++++++++---
5 files changed, 229 insertions(+), 143 deletions(-)
commit e568df6b84ff05a22467503afc11bee7a6ba0700
Author: Jan Kara <jack(a)suse.cz>
Date: Wed Aug 10 16:42:53 2016 +0200
ext2: Return BH_New buffers for zeroed blocks
So far we did not return BH_New buffers from ext2_get_blocks() when we
allocated and zeroed-out a block for DAX inode to avoid racy zeroing in
DAX code. This zeroing is gone these days so we can remove the
workaround.
Reviewed-by: Ross Zwisler <ross.zwisler(a)linux.intel.com>
Reviewed-by: Christoph Hellwig <hch(a)lst.de>
Signed-off-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
commit c6dcf52c23d2d3fb5235cec42d7dd3f786b87d55
Author: Jan Kara <jack(a)suse.cz>
Date: Wed Aug 10 17:22:44 2016 +0200
mm: Invalidate DAX radix tree entries only if appropriate
Currently invalidate_inode_pages2_range() and invalidate_mapping_pages()
just delete all exceptional radix tree entries they find. For DAX this
is not desirable as we track cache dirtiness in these entries and when
they are evicted, we may not flush caches although it is necessary. This
can for example manifest when we write to the same block both via mmap
and via write(2) (to different offsets) and fsync(2) then does not
properly flush CPU caches when modification via write(2) was the last
one.
Create appropriate DAX functions to handle invalidation of DAX entries
for invalidate_inode_pages2_range() and invalidate_mapping_pages() and
wire them up into the corresponding mm functions.
Acked-by: Johannes Weiner <hannes(a)cmpxchg.org>
Reviewed-by: Ross Zwisler <ross.zwisler(a)linux.intel.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
commit e3fce68cdbed297d927e993b3ea7b8b1cee545da
Author: Jan Kara <jack(a)suse.cz>
Date: Wed Aug 10 17:10:28 2016 +0200
dax: Avoid page invalidation races and unnecessary radix tree traversals
Currently dax_iomap_rw() takes care of invalidating page tables and
evicting hole pages from the radix tree when write(2) to the file
happens. This invalidation is only necessary when there is some block
allocation resulting from write(2). Furthermore in current place the
invalidation is racy wrt page fault instantiating a hole page just after
we have invalidated it.
So perform the page invalidation inside dax_iomap_actor() where we can
do it only when really necessary and after blocks have been allocated so
nobody will be instantiating new hole pages anymore.
Reviewed-by: Christoph Hellwig <hch(a)lst.de>
Reviewed-by: Ross Zwisler <ross.zwisler(a)linux.intel.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
commit f449b936f1aff7696b24a338f493d5cee8d48d55
Author: Jan Kara <jack(a)suse.cz>
Date: Wed Oct 19 14:48:38 2016 +0200
dax: Finish fault completely when loading holes
The only case when we do not finish the page fault completely is when we
are loading hole pages into a radix tree. Avoid this special case and
finish the fault in that case as well inside the DAX fault handler. It
will allow us for easier iomap handling.
Reviewed-by: Ross Zwisler <ross.zwisler(a)linux.intel.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
commit 9f141d6ef6258a3a37a045842d9ba7e68f368956
Author: Jan Kara <jack(a)suse.cz>
Date: Wed Oct 19 14:34:31 2016 +0200
dax: Call ->iomap_begin without entry lock during dax fault
Currently ->iomap_begin() handler is called with entry lock held. If the
filesystem held any locks between ->iomap_begin() and ->iomap_end()
(such as ext4 which will want to hold transaction open), this would cause
lock inversion with the iomap_apply() from standard IO path which first
calls ->iomap_begin() and only then calls ->actor() callback which grabs
entry locks for DAX (if it faults when copying from/to user provided
buffers).
Fix the problem by nesting grabbing of entry lock inside ->iomap_begin()
- ->iomap_end() pair.
Reviewed-by: Ross Zwisler <ross.zwisler(a)linux.intel.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
commit 1db175428ee374489448361213e9c3b749d14900
Author: Jan Kara <jack(a)suse.cz>
Date: Fri Oct 21 11:33:49 2016 +0200
ext4: Simplify DAX fault path
Now that dax_iomap_fault() calls ->iomap_begin() without entry lock, we
can use transaction starting in ext4_iomap_begin() and thus simplify
ext4_dax_fault(). It also provides us proper retries in case of ENOSPC.
Signed-off-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
4 years