diff for duplicates of <1561473887.19713.6.camel@intel.com> diff --git a/a/1.txt b/N1/1.txt index 5925dba..2840db5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,4 +1,4 @@ -On ?, 2019-06-14@00:20 +0900, Akinobu Mita wrote: +On 五, 2019-06-14 at 00:20 +0900, Akinobu Mita wrote: > The NVMe controller supports the temperature threshold feature > (Feature > Identifier 04h) that enables to configure the asynchronous event @@ -18,27 +18,27 @@ On ?, 2019-06-14@00:20 +0900, Akinobu Mita wrote: > power > state transitions. > -> Cc: Zhang Rui <rui.zhang at intel.com> -> Cc: Eduardo Valentin <edubezval at gmail.com> -> Cc: Daniel Lezcano <daniel.lezcano at linaro.org> -> Cc: Keith Busch <kbusch at kernel.org> -> Cc: Jens Axboe <axboe at fb.com> -> Cc: Christoph Hellwig <hch at lst.de> -> Cc: Sagi Grimberg <sagi at grimberg.me> -> Cc: Minwoo Im <minwoo.im.dev at gmail.com> -> Cc: Kenneth Heitke <kenneth.heitke at intel.com> -> Cc: Chaitanya Kulkarni <Chaitanya.Kulkarni at wdc.com> -> Signed-off-by: Akinobu Mita <akinobu.mita at gmail.com> +> Cc: Zhang Rui <rui.zhang@intel.com> +> Cc: Eduardo Valentin <edubezval@gmail.com> +> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> +> Cc: Keith Busch <kbusch@kernel.org> +> Cc: Jens Axboe <axboe@fb.com> +> Cc: Christoph Hellwig <hch@lst.de> +> Cc: Sagi Grimberg <sagi@grimberg.me> +> Cc: Minwoo Im <minwoo.im.dev@gmail.com> +> Cc: Kenneth Heitke <kenneth.heitke@intel.com> +> Cc: Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com> +> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> > --- > * v4 > - support DT thermal zone device. > - use bitmap to iterate over implemented sensors > -> ?drivers/nvme/host/core.c????| 14 ++++++++++++++ -> ?drivers/nvme/host/nvme.h????|??5 +++++ -> ?drivers/nvme/host/thermal.c | 12 ++++++++++++ -> ?include/linux/nvme.h????????|??7 +++++++ -> ?4 files changed, 38 insertions(+) +> drivers/nvme/host/core.c | 14 ++++++++++++++ +> drivers/nvme/host/nvme.h | 5 +++++ +> drivers/nvme/host/thermal.c | 12 ++++++++++++ +> include/linux/nvme.h | 7 +++++++ +> 4 files changed, 38 insertions(+) > > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index 4be339b..44dadbb 100644 @@ -46,21 +46,21 @@ On ?, 2019-06-14@00:20 +0900, Akinobu Mita wrote: > +++ b/drivers/nvme/host/core.c > @@ -1186,6 +1186,9 @@ static void nvme_enable_aen(struct nvme_ctrl > *ctrl) -> ? u32 result, supported_aens = ctrl->oaes & +> u32 result, supported_aens = ctrl->oaes & > NVME_AEN_SUPPORTED; -> ? int status; -> ? +> int status; +> > + if (IS_ENABLED(CONFIG_THERMAL)) > + supported_aens |= NVME_SMART_CRIT_TEMPERATURE; > + -> ? if (!supported_aens) -> ? return; -> ? +> if (!supported_aens) +> return; +> > @@ -3561,6 +3564,16 @@ void nvme_remove_namespaces(struct nvme_ctrl > *ctrl) -> ?} -> ?EXPORT_SYMBOL_GPL(nvme_remove_namespaces); -> ? +> } +> EXPORT_SYMBOL_GPL(nvme_remove_namespaces); +> > +static void nvme_handle_aen_smart(struct nvme_ctrl *ctrl, u32 > result) > +{ @@ -69,49 +69,49 @@ On ?, 2019-06-14@00:20 +0900, Akinobu Mita wrote: > NVME_AER_INFO_MASK; > + > + if (aer_type == NVME_AER_SMART && -> + ????aer_info == NVME_AER_SMART_TEMP_THRESH) +> + aer_info == NVME_AER_SMART_TEMP_THRESH) > + nvme_thermal_notify_framework(ctrl); > +} > + -> ?static void nvme_aen_uevent(struct nvme_ctrl *ctrl) -> ?{ -> ? char *envp[2] = { NULL, NULL }; +> static void nvme_aen_uevent(struct nvme_ctrl *ctrl) +> { +> char *envp[2] = { NULL, NULL }; > @@ -3582,6 +3595,7 @@ static void nvme_async_event_work(struct > work_struct *work) -> ? struct nvme_ctrl *ctrl = -> ? container_of(work, struct nvme_ctrl, +> struct nvme_ctrl *ctrl = +> container_of(work, struct nvme_ctrl, > async_event_work); -> ? +> > + nvme_handle_aen_smart(ctrl, ctrl->aen_result); -> ? nvme_aen_uevent(ctrl); -> ? ctrl->ops->submit_async_event(ctrl); -> ?} +> nvme_aen_uevent(ctrl); +> ctrl->ops->submit_async_event(ctrl); +> } > diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h > index a9c63ea..40325b6 100644 > --- a/drivers/nvme/host/nvme.h > +++ b/drivers/nvme/host/nvme.h > @@ -605,6 +605,7 @@ static inline struct nvme_ns > *nvme_get_ns_from_dev(struct device *dev) -> ? -> ?int nvme_thermal_zones_register(struct nvme_ctrl *ctrl); -> ?void nvme_thermal_zones_unregister(struct nvme_ctrl *ctrl); +> +> int nvme_thermal_zones_register(struct nvme_ctrl *ctrl); +> void nvme_thermal_zones_unregister(struct nvme_ctrl *ctrl); > +void nvme_thermal_notify_framework(struct nvme_ctrl *ctrl); -> ? -> ?#else -> ? +> +> #else +> > @@ -617,6 +618,10 @@ static inline void > nvme_thermal_zones_unregister(struct nvme_ctrl *ctrl) -> ?{ -> ?} -> ? +> { +> } +> > +static inline void nvme_thermal_notify_framework(struct nvme_ctrl > *ctrl) > +{ > +} > + -> ?#endif /* CONFIG_THERMAL */ -> ? -> ?#endif /* _NVME_H */ +> #endif /* CONFIG_THERMAL */ +> +> #endif /* _NVME_H */ > diff --git a/drivers/nvme/host/thermal.c > b/drivers/nvme/host/thermal.c > index 18d0e4c..b5e835d 100644 @@ -119,9 +119,9 @@ On ?, 2019-06-14@00:20 +0900, Akinobu Mita wrote: > +++ b/drivers/nvme/host/thermal.c > @@ -309,3 +309,15 @@ void nvme_thermal_zones_unregister(struct > nvme_ctrl *ctrl) -> ? __clear_bit(i, ctrl->tz_enabled); -> ? } -> ?} +> __clear_bit(i, ctrl->tz_enabled); +> } +> } > + > +void nvme_thermal_notify_framework(struct nvme_ctrl *ctrl) > +{ @@ -150,23 +150,23 @@ rui > --- a/include/linux/nvme.h > +++ b/include/linux/nvme.h > @@ -476,6 +476,7 @@ enum { -> ?}; -> ? -> ?enum { +> }; +> +> enum { > + NVME_AER_TYPE_MASK = 0x7, -> ? NVME_AER_ERROR = 0, -> ? NVME_AER_SMART = 1, -> ? NVME_AER_NOTICE = 2, +> NVME_AER_ERROR = 0, +> NVME_AER_SMART = 1, +> NVME_AER_NOTICE = 2, > @@ -484,6 +485,12 @@ enum { -> ?}; -> ? -> ?enum { +> }; +> +> enum { > + NVME_AER_INFO_SHIFT = 8, > + NVME_AER_INFO_MASK = 0xff, > + NVME_AER_SMART_TEMP_THRESH = 0x01, > +}; > + > +enum { -> ? NVME_AER_NOTICE_NS_CHANGED = 0x00, -> ? NVME_AER_NOTICE_FW_ACT_STARTING = 0x01, -> ? NVME_AER_NOTICE_ANA = 0x03, +> NVME_AER_NOTICE_NS_CHANGED = 0x00, +> NVME_AER_NOTICE_FW_ACT_STARTING = 0x01, +> NVME_AER_NOTICE_ANA = 0x03, diff --git a/a/content_digest b/N1/content_digest index cd67cea..d287287 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,11 +1,23 @@ "ref\01560439238-4054-1-git-send-email-akinobu.mita@gmail.com\0" "ref\01560439238-4054-4-git-send-email-akinobu.mita@gmail.com\0" - "From\0rui.zhang@intel.com (Zhang Rui)\0" - "Subject\0[PATCH v4 3/3] nvme: notify thermal framework when temperature threshold events occur\0" + "From\0Zhang Rui <rui.zhang@intel.com>\0" + "Subject\0Re: [PATCH v4 3/3] nvme: notify thermal framework when temperature threshold events occur\0" "Date\0Tue, 25 Jun 2019 22:44:47 +0800\0" + "To\0Akinobu Mita <akinobu.mita@gmail.com>" + linux-nvme@lists.infradead.org + " linux-pm@vger.kernel.org\0" + "Cc\0Eduardo Valentin <edubezval@gmail.com>" + Daniel Lezcano <daniel.lezcano@linaro.org> + Keith Busch <kbusch@kernel.org> + Jens Axboe <axboe@fb.com> + Christoph Hellwig <hch@lst.de> + Sagi Grimberg <sagi@grimberg.me> + Minwoo Im <minwoo.im.dev@gmail.com> + Kenneth Heitke <kenneth.heitke@intel.com> + " Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>\0" "\00:1\0" "b\0" - "On ?, 2019-06-14@00:20 +0900, Akinobu Mita wrote:\n" + "On \344\272\224, 2019-06-14 at 00:20 +0900, Akinobu Mita wrote:\n" "> The NVMe controller supports the temperature threshold feature\n" "> (Feature\n" "> Identifier 04h) that enables to configure the asynchronous event\n" @@ -25,27 +37,27 @@ "> power\n" "> state transitions.\n" "> \n" - "> Cc: Zhang Rui <rui.zhang at intel.com>\n" - "> Cc: Eduardo Valentin <edubezval at gmail.com>\n" - "> Cc: Daniel Lezcano <daniel.lezcano at linaro.org>\n" - "> Cc: Keith Busch <kbusch at kernel.org>\n" - "> Cc: Jens Axboe <axboe at fb.com>\n" - "> Cc: Christoph Hellwig <hch at lst.de>\n" - "> Cc: Sagi Grimberg <sagi at grimberg.me>\n" - "> Cc: Minwoo Im <minwoo.im.dev at gmail.com>\n" - "> Cc: Kenneth Heitke <kenneth.heitke at intel.com>\n" - "> Cc: Chaitanya Kulkarni <Chaitanya.Kulkarni at wdc.com>\n" - "> Signed-off-by: Akinobu Mita <akinobu.mita at gmail.com>\n" + "> Cc: Zhang Rui <rui.zhang@intel.com>\n" + "> Cc: Eduardo Valentin <edubezval@gmail.com>\n" + "> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>\n" + "> Cc: Keith Busch <kbusch@kernel.org>\n" + "> Cc: Jens Axboe <axboe@fb.com>\n" + "> Cc: Christoph Hellwig <hch@lst.de>\n" + "> Cc: Sagi Grimberg <sagi@grimberg.me>\n" + "> Cc: Minwoo Im <minwoo.im.dev@gmail.com>\n" + "> Cc: Kenneth Heitke <kenneth.heitke@intel.com>\n" + "> Cc: Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>\n" + "> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>\n" "> ---\n" "> * v4\n" "> - support DT thermal zone device.\n" "> - use bitmap to iterate over implemented sensors\n" "> \n" - "> ?drivers/nvme/host/core.c????| 14 ++++++++++++++\n" - "> ?drivers/nvme/host/nvme.h????|??5 +++++\n" - "> ?drivers/nvme/host/thermal.c | 12 ++++++++++++\n" - "> ?include/linux/nvme.h????????|??7 +++++++\n" - "> ?4 files changed, 38 insertions(+)\n" + "> \302\240drivers/nvme/host/core.c\302\240\302\240\302\240\302\240| 14 ++++++++++++++\n" + "> \302\240drivers/nvme/host/nvme.h\302\240\302\240\302\240\302\240|\302\240\302\2405 +++++\n" + "> \302\240drivers/nvme/host/thermal.c | 12 ++++++++++++\n" + "> \302\240include/linux/nvme.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2407 +++++++\n" + "> \302\2404 files changed, 38 insertions(+)\n" "> \n" "> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c\n" "> index 4be339b..44dadbb 100644\n" @@ -53,21 +65,21 @@ "> +++ b/drivers/nvme/host/core.c\n" "> @@ -1186,6 +1186,9 @@ static void nvme_enable_aen(struct nvme_ctrl\n" "> *ctrl)\n" - "> ?\tu32 result, supported_aens = ctrl->oaes &\n" + "> \302\240\tu32 result, supported_aens = ctrl->oaes &\n" "> NVME_AEN_SUPPORTED;\n" - "> ?\tint status;\n" - "> ?\n" + "> \302\240\tint status;\n" + "> \302\240\n" "> +\tif (IS_ENABLED(CONFIG_THERMAL))\n" "> +\t\tsupported_aens |= NVME_SMART_CRIT_TEMPERATURE;\n" "> +\n" - "> ?\tif (!supported_aens)\n" - "> ?\t\treturn;\n" - "> ?\n" + "> \302\240\tif (!supported_aens)\n" + "> \302\240\t\treturn;\n" + "> \302\240\n" "> @@ -3561,6 +3564,16 @@ void nvme_remove_namespaces(struct nvme_ctrl\n" "> *ctrl)\n" - "> ?}\n" - "> ?EXPORT_SYMBOL_GPL(nvme_remove_namespaces);\n" - "> ?\n" + "> \302\240}\n" + "> \302\240EXPORT_SYMBOL_GPL(nvme_remove_namespaces);\n" + "> \302\240\n" "> +static void nvme_handle_aen_smart(struct nvme_ctrl *ctrl, u32\n" "> result)\n" "> +{\n" @@ -76,49 +88,49 @@ "> NVME_AER_INFO_MASK;\n" "> +\n" "> +\tif (aer_type == NVME_AER_SMART &&\n" - "> +\t????aer_info == NVME_AER_SMART_TEMP_THRESH)\n" + "> +\t\302\240\302\240\302\240\302\240aer_info == NVME_AER_SMART_TEMP_THRESH)\n" "> +\t\tnvme_thermal_notify_framework(ctrl);\n" "> +}\n" "> +\n" - "> ?static void nvme_aen_uevent(struct nvme_ctrl *ctrl)\n" - "> ?{\n" - "> ?\tchar *envp[2] = { NULL, NULL };\n" + "> \302\240static void nvme_aen_uevent(struct nvme_ctrl *ctrl)\n" + "> \302\240{\n" + "> \302\240\tchar *envp[2] = { NULL, NULL };\n" "> @@ -3582,6 +3595,7 @@ static void nvme_async_event_work(struct\n" "> work_struct *work)\n" - "> ?\tstruct nvme_ctrl *ctrl =\n" - "> ?\t\tcontainer_of(work, struct nvme_ctrl,\n" + "> \302\240\tstruct nvme_ctrl *ctrl =\n" + "> \302\240\t\tcontainer_of(work, struct nvme_ctrl,\n" "> async_event_work);\n" - "> ?\n" + "> \302\240\n" "> +\tnvme_handle_aen_smart(ctrl, ctrl->aen_result);\n" - "> ?\tnvme_aen_uevent(ctrl);\n" - "> ?\tctrl->ops->submit_async_event(ctrl);\n" - "> ?}\n" + "> \302\240\tnvme_aen_uevent(ctrl);\n" + "> \302\240\tctrl->ops->submit_async_event(ctrl);\n" + "> \302\240}\n" "> diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h\n" "> index a9c63ea..40325b6 100644\n" "> --- a/drivers/nvme/host/nvme.h\n" "> +++ b/drivers/nvme/host/nvme.h\n" "> @@ -605,6 +605,7 @@ static inline struct nvme_ns\n" "> *nvme_get_ns_from_dev(struct device *dev)\n" - "> ?\n" - "> ?int nvme_thermal_zones_register(struct nvme_ctrl *ctrl);\n" - "> ?void nvme_thermal_zones_unregister(struct nvme_ctrl *ctrl);\n" + "> \302\240\n" + "> \302\240int nvme_thermal_zones_register(struct nvme_ctrl *ctrl);\n" + "> \302\240void nvme_thermal_zones_unregister(struct nvme_ctrl *ctrl);\n" "> +void nvme_thermal_notify_framework(struct nvme_ctrl *ctrl);\n" - "> ?\n" - "> ?#else\n" - "> ?\n" + "> \302\240\n" + "> \302\240#else\n" + "> \302\240\n" "> @@ -617,6 +618,10 @@ static inline void\n" "> nvme_thermal_zones_unregister(struct nvme_ctrl *ctrl)\n" - "> ?{\n" - "> ?}\n" - "> ?\n" + "> \302\240{\n" + "> \302\240}\n" + "> \302\240\n" "> +static inline void nvme_thermal_notify_framework(struct nvme_ctrl\n" "> *ctrl)\n" "> +{\n" "> +}\n" "> +\n" - "> ?#endif /* CONFIG_THERMAL */\n" - "> ?\n" - "> ?#endif /* _NVME_H */\n" + "> \302\240#endif /* CONFIG_THERMAL */\n" + "> \302\240\n" + "> \302\240#endif /* _NVME_H */\n" "> diff --git a/drivers/nvme/host/thermal.c\n" "> b/drivers/nvme/host/thermal.c\n" "> index 18d0e4c..b5e835d 100644\n" @@ -126,9 +138,9 @@ "> +++ b/drivers/nvme/host/thermal.c\n" "> @@ -309,3 +309,15 @@ void nvme_thermal_zones_unregister(struct\n" "> nvme_ctrl *ctrl)\n" - "> ?\t\t__clear_bit(i, ctrl->tz_enabled);\n" - "> ?\t}\n" - "> ?}\n" + "> \302\240\t\t__clear_bit(i, ctrl->tz_enabled);\n" + "> \302\240\t}\n" + "> \302\240}\n" "> +\n" "> +void nvme_thermal_notify_framework(struct nvme_ctrl *ctrl)\n" "> +{\n" @@ -157,25 +169,25 @@ "> --- a/include/linux/nvme.h\n" "> +++ b/include/linux/nvme.h\n" "> @@ -476,6 +476,7 @@ enum {\n" - "> ?};\n" - "> ?\n" - "> ?enum {\n" + "> \302\240};\n" + "> \302\240\n" + "> \302\240enum {\n" "> +\tNVME_AER_TYPE_MASK\t\t= 0x7,\n" - "> ?\tNVME_AER_ERROR\t\t\t= 0,\n" - "> ?\tNVME_AER_SMART\t\t\t= 1,\n" - "> ?\tNVME_AER_NOTICE\t\t\t= 2,\n" + "> \302\240\tNVME_AER_ERROR\t\t\t= 0,\n" + "> \302\240\tNVME_AER_SMART\t\t\t= 1,\n" + "> \302\240\tNVME_AER_NOTICE\t\t\t= 2,\n" "> @@ -484,6 +485,12 @@ enum {\n" - "> ?};\n" - "> ?\n" - "> ?enum {\n" + "> \302\240};\n" + "> \302\240\n" + "> \302\240enum {\n" "> +\tNVME_AER_INFO_SHIFT\t\t= 8,\n" "> +\tNVME_AER_INFO_MASK\t\t= 0xff,\n" "> +\tNVME_AER_SMART_TEMP_THRESH\t= 0x01,\n" "> +};\n" "> +\n" "> +enum {\n" - "> ?\tNVME_AER_NOTICE_NS_CHANGED\t= 0x00,\n" - "> ?\tNVME_AER_NOTICE_FW_ACT_STARTING = 0x01,\n" - "> ?\tNVME_AER_NOTICE_ANA\t\t= 0x03," + "> \302\240\tNVME_AER_NOTICE_NS_CHANGED\t= 0x00,\n" + "> \302\240\tNVME_AER_NOTICE_FW_ACT_STARTING = 0x01,\n" + "> \302\240\tNVME_AER_NOTICE_ANA\t\t= 0x03," -b3396a5e01e59021aaa5c4b6586aa466554accf71eb5eeda995078bc6f186250 +72c7d472406e876b0e6893b550f685761e3fd9858977626b72b5c8a082bea411
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.