Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264527AbTKNFOF (ORCPT ); Fri, 14 Nov 2003 00:14:05 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264529AbTKNFOF (ORCPT ); Fri, 14 Nov 2003 00:14:05 -0500 Received: from smtp4.hy.skanova.net ([195.67.199.133]:52942 "EHLO smtp4.hy.skanova.net") by vger.kernel.org with ESMTP id S264527AbTKNFNv (ORCPT ); Fri, 14 Nov 2003 00:13:51 -0500 From: Roger Larsson To: linux-audio-dev@music.columbia.edu Subject: [CODE RFC] redefining sched_setscheduler using LD_PRELOAD Date: Fri, 14 Nov 2003 06:15:06 +0100 User-Agent: KMail/1.5.93 Cc: "Jack O'Quin" , linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Disposition: inline Content-Type: Multipart/Mixed; boundary="Boundary-00=_aTGt/o5l1l03GNF" Message-Id: <200311140615.06606.roger.larsson@norran.net> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 23307 Lines: 352 --Boundary-00=_aTGt/o5l1l03GNF Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, (Jack O'Quin got me thinking about rt_monitor again - thanks!) This is an alternative to capabilities / SCHED_SOFTRR... I use my old rt_monitor=20 * protects the system on RT overload * performs the actual setting of scheduler type * it does not even have to be visible for lusers! My old testprogram RT has been converted to a library fit for preloading. It works like this. As root start # rt_monitor As normal user start latencytest $ ./rts path/to/latencytest none 2 128 10 rts has two options -i do not raise the priority. -v be more verbose. * It does also limit the effective min/max range. Do also try (don't try this as root unless rt_monitor is running) $ ./rts path/to/latencytest none 2 1024 99 * In this case rt_monitor captures the process and renices it. (SCHED_OTHER + nice) BUGS: * better build and installation system * could ignore RT processes already running when rt_monitor starts * rt_monitor functionallity has not been reverified... * it can't lock memory :-( No PIDs in calls. * code that checks uid before using the redefined functions won't work (I have an modified latencytest) * client get stuck if there is no monitor running. /RogerL =2D-=20 Roger Larsson Skellefte=E5 Sweden --Boundary-00=_aTGt/o5l1l03GNF Content-Type: application/x-zip; name="rts.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rts.zip" 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 --Boundary-00=_aTGt/o5l1l03GNF-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/