From: Richard Cochran <richardcochran@gmail.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: "David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, Sekhar Nori <nsekhar@ti.com>,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
Wingman Kwok <w-kwok2@ti.com>,
Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Subject: Re: [PATCH 1/2] net: ethernet: ti: cpts: convert to use kthread_worker
Date: Tue, 25 Jul 2017 06:31:34 +0200 [thread overview]
Message-ID: <20170725043134.dxootdk66iqov7jh@localhost.localdomain> (raw)
In-Reply-To: <bc4bf624-e58e-657c-0520-9fd50d6666a6@ti.com>
On Mon, Jul 24, 2017 at 07:34:38PM -0500, Grygorii Strashko wrote:
> Below if pure TBD/RFC version of patch which add kthread worker to PTP core.
> I'm sending it to get you opinion about implementation in general, before
> continue with more changes. Pls, take a look if you have time?
> - are you ok with names (API, callbacks, ptp structs members)?
The API and naming looks good to me.
> I can prepare, update and resend proper patches tom if feedback is positive.
Please do.
> I also can convert dp83640 driver to use new feature, but I can't test it.
No need for that. It would be enough to have cpts as the first user
and example.
> + if (ptp->info->do_aux_work) {
> + struct sched_param param = {
> + .sched_priority = MAX_RT_PRIO - 1 };
> +
> + kthread_init_delayed_work(&ptp->aux_work, ptp_aux_kworker);
> + ptp->kworker = kthread_create_worker(0, info->name);
> + if (IS_ERR(ptp->kworker)) {
> + pr_err("failed to create ptp aux_worker task %ld\n",
> + PTR_ERR(ptp->kworker));
> + return ERR_CAST(ptp->kworker);
> + }
> + err = sched_setscheduler_nocheck(ptp->kworker->task,
> + SCHED_FIFO, ¶m);
I think we should not hard code the scheduler and priority here but
rather leave it to the sysadmin to configure these using chrt(1).
After all, a normal work item is has served just in many situations.
> + if (err)
> + pr_err("sched_setscheduler_nocheck err %d\n", err);
> + }
> +
> err = ptp_populate_pin_groups(ptp);
> if (err)
> goto no_pin_groups;
> @@ -274,6 +305,9 @@ int ptp_clock_unregister(struct ptp_clock *ptp)
> ptp->defunct = 1;
> wake_up_interruptible(&ptp->tsev_wq);
>
> + kthread_cancel_delayed_work_sync(&ptp->aux_work);
> + kthread_destroy_worker(ptp->kworker);
These can't be called unconditionally.
> /* Release the clock's resources. */
> if (ptp->pps_source)
> pps_unregister_source(ptp->pps_source);
Thanks,
Richard
next prev parent reply other threads:[~2017-07-25 4:31 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-21 23:49 [PATCH 0/2] net: ethernet: ti: cpts: fix tx timestamping timeout Grygorii Strashko
2017-07-21 23:49 ` [PATCH 1/2] net: ethernet: ti: cpts: convert to use kthread_worker Grygorii Strashko
2017-07-22 5:29 ` Richard Cochran
2017-07-25 0:34 ` Grygorii Strashko
2017-07-25 4:31 ` Richard Cochran [this message]
2017-07-21 23:49 ` [PATCH 2/2] net: ethernet: ti: cpts: fix tx timestamping timeout Grygorii Strashko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170725043134.dxootdk66iqov7jh@localhost.localdomain \
--to=richardcochran@gmail.com \
--cc=davem@davemloft.net \
--cc=grygorii.strashko@ti.com \
--cc=ivan.khoronzhuk@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=w-kwok2@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox